科技行者

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

知识库

知识库 安全导航

至顶网软件频道应用软件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();

}

查看本文来源

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

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

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