• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 请大侠赐教,ATL如何调用MFC做的ActiveX控件的事件接口

请大侠赐教,ATL如何调用MFC做的ActiveX控件的事件接口

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了atl activex,atl,atl71.dll,atl100.dll下载,atl71.dll修复等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 请大侠赐教,ATL如何调用MFC做的ActiveX控件的事件接口
描述:

我现在正在做一个com组件(是用ATL写的),里面用到了另一个同事写的ActiveX控件(是用mfc写的),它里面定义了一个事件回调,我该如何编写?我现在的方法是实现了他的事件接口,并用AtlAdvise与他的控件建立了连接,但是我实现的事件接口方法始终得不到调用,为什么?


解决方案1:

//
// Chapter7_Client.cpp
//
#include <windows.h>
// Include ATL
#include <atlbase.h>
CComModule _Module;
#include <atlcom.h>
#include <atlimpl.cpp>
BEGIN_OBJECT_MAP(ObjectMap)
END_OBJECT_MAP()
#include "..\Chapter7_CPServer\Chapter7_CPServer.h"
#include "..\Chapter7_CPServer\Chapter7_CPServer_i.c"
class COMModule
{
public:
   COMModule()
   {
      CoInitialize( 0 );
   }
   ~COMModule()
   {
      CoUninitialize();
   }
};
COMModule gModule;
void DisplayMessage( char* szMsg )
{
   MessageBox( 0, szMsg, "Chapter7_Client", MB_OK );
}
void HandleError( char*szMsg, HRESULT hr )
{
   char szMessage[128];
   sprintf( szMessage, "%s. HR = %x", szMsg, hr );
   DisplayMessage( szMessage );
}
class CMathEvents :
   public CComObjectRoot,
   public _IMathEvents
{
public:
   CMathEvents()
   {
   }
BEGIN_COM_MAP(CMathEvents)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(_IMathEvents)
END_COM_MAP()
// IMathEvents
public:
   STDMETHODIMP GetTypeInfoCount(UINT*)
   {
      return E_NOTIMPL;
   }
   STDMETHODIMP GetTypeInfo( UINT iTInfo,
                         LCID lcid,
                             ITypeInfo **ppTInfo)
   { 
      return E_NOTIMPL;
   }
   STDMETHODIMP GetIDsOfNames( REFIID riid,
                               LPOLESTR *rgszNames,
                               UINT cNames,
                               LCID lcid,
                               DISPID *rgDispId)
   { 
      return E_NOTIMPL;
   }
   STDMETHODIMP Invoke( DISPID dispIdMember,
                        REFIID riid,
                        LCID lcid,
                        WORD wFlags,
                        DISPPARAMS *pDispParams,
                        VARIANT *pVarResult,
                        EXCEPINFO *pExcepInfo,
                        UINT *puArgErr)
   {
      switch( dispIdMember )
      {
         case 0x1:
            // Make sure the is just one argument
            if ( pDispParams->cArgs != 1 )
               return DISP_E_BADPARAMCOUNT;
            // We don't support named arguments
            if ( pDispParams->cNamedArgs )
               return DISP_E_NONAMEDARGS;
            // Coerce the argument into a long
            HRESULT hr;
            VARIANTARG var;
            VariantInit( &var );
            hr = VariantChangeTypeEx( &var,
                                      &(pDispParams->rgvarg[0]),
                                      lcid, 0, VT_I4 );
            if FAILED( hr )
               return DISP_E_BADVARTYPE;
            ComputationComplete( var.lVal );
            break;
         default:
     &nbs

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 大家一般都怎么打包Atl开发的ActiveX控件?
  • 在ATL中,如何设置ActiveX的运行时的属性。
  • ATL写的ActiveX要怎么取得网页里PARAM传入的值?
  • 请教,ATL写的ActiveX控件在IE中加载时接口的调用顺序
  • 用ATL改写的Win32窗口程序加载ActiveX控件出错
  • Atl做的ActiveX控件的事件,在客户端如何调用?
  • 初次编写ATL的ActiveX控件,关于属性是函数的问题!请大家帮助!
  • 如何用ATL写ActiveX文档?
  • ATL无窗口ActiveX控件中,得到容器的方法
  • 有没有用SDK开发ActiveX控件的文章或源代码啊?不用MFC或ATL

相关文章

  • 2017-06-05 帮忙就给分--如何向线程(全局)函数中传递一个对话框指针?是对话框工程,想把这个对话框指针传进线程(全局)函数中
  • 2017-06-05 C#功能异常强大,vbnet也支持多线程等技术,还有学习vc++的必要吗?
  • 2017-06-04 CAsyncSocket问题
  • 2017-06-04 如何控制BHO只被IE加载而不被文件浏览器加载?
  • 2017-06-04 [求助]typedefunsignedshortString,这样就能说明String是Unicode字符么?
  • 2017-06-04 写一个支持MFC的ATLCOM但是编译时出错!!:(
  • 2017-06-04 关于ActiveX控件的使用
  • 2017-06-04 DCOM中的dllhost????
  • 2017-06-05 线程变量改变问题
  • 2017-06-04 com高手,进来看看![所有相关帖子]

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 关于COM的基础问题IE相关接口)
    • 如何传递一个记录集的参数?
    • 请问如何控制线程的CPU占用率啊?
    • 在BHO,怎么捕获浏览器响应的最后一个的事件?
    • 一个ATL入门的简单问题,请进来看看
    • 求助!初学DLL的困惑
    • 如何在idl文件中使用stl,比如一个接口的参数使用string
    • 100分寒风中裸求求VC++操作WORD的问题,向WORD文档中添加表,并对表操作(包括增加行)
    • excel插件编译中的问题?
    • 如何将控件表面变成都是黑色?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有