科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件VC++实现COM事件接收器

VC++实现COM事件接收器

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文介绍了VC++实现COM事件接收器的代码

作者:sinall 来源:http://blog.csdn.net/sinall/ 2007年9月15日

关键字: VC++ COM 事件接收器 软件

  • 评论
  • 分享微博
  • 分享邮件

1、给程序添加ATL支持。

右键->New ATL Object

2、实现IDispEventImpl 接口。

//EventSink.h

#import "..\Server\Debug\Server.exe" raw_interface_only,no_namespace,named_guids

class  CEventSink :

public IDispEventImpl<0, CEventSink,&DIID__IObjEvents,&LIBID_SERVERLib, 1, 0>

{

public:

CEventSink()

{

}

public:

BEGIN_SINK_MAP(CEventSink)

SINK_ENTRY_EX(0, DIID__IObjEvents, 1, cbFunc01)

END_SINK_MAP()

STDMETHOD(cbFunc01)();

};

//EventSink.cpp

#include "stdafx.h"

#include "EventSink.h"

STDMETHODIMP CEventSink::cbFunc01()

{

AfxMessageBox("called by Event from dll Server !");

return S_OK;

}

3、连接对象

// ClientDlg.cpp : implementation file

//

#include "EventSink.h"

void CClientDlg::OnButton1()

{

// TODO: Add your control notification handler code here

::CoInitialize(NULL);

{

IObjPtr pObj;

CEventSink *pEventSink= new CEventSink;

pObj.CreateInstance(__uuidof(Obj));

pEventSink->DispEventAdvise(pObj);

pObj->Func01();

pEventSink->DispEventUnadvise(pObj);

delete pEventSink;

}

::CoUninitialize();

}

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    闂侇収鍠曞▎銏㈡媼閵忋倖顫�

    濠碘€冲€归悘澶愬箖閵娾晜濮滈悽顖涚摃閹烩晠宕氶崶鈺傜暠闁诡垰鍘栫花锛勬喆椤ゅ弧濡澘妫楅悡娆撳嫉閳ь剟寮0渚€鐛撻柛婵呮缁楀矂骞庨埀顒勫嫉椤栨瑤绻嗛柟顓у灲缁辨繈鏌囬敐鍕杽閻犱降鍨藉Σ鍕嚊閹跺鈧﹦绱旈幋鐐参楅柡鍫灦閸嬫牗绂掔捄铏规闁哄嫷鍨遍崑宥夋儍閸曨剚浠樺ù锝嗗▕閳ь剚鏌ㄧ欢鐐寸▕鐎b晝顏遍柕鍡嫹

    重磅专题
    往期文章
    最新文章