64,282
社区成员
发帖
与我相关
我的任务
分享
#include <atlbase.h>
#include <atlcom.h>
static _ATL_FUNC_INFO FunInfo = {CC_STDCALL, VT_EMPTY, 0,NULL};
class CEvent :public IDispEventSimpleImpl<1, CEvent,&DIID__IFristEvents>
{
public:
CEvent();
virtual ~CEvent();
BEGIN_SINK_MAP(CEvent)
SINK_ENTRY_INFO(1,DIID__IFristEvents,0x1,OnShow,&FunInfo)
END_SINK_MAP()
STDMETHOD(OnShow)();
};
CEvent::CEvent()
{
}
CEvent::~CEvent()
{
}
STDMETHODIMP CEvent::OnShow()
{
::MessageBox(0,"EVENT",0,0);
return S_OK;
}
CComModule _Module;
int main(int argc, char* argv[])
{
HRESULT hr= ::CoInitialize(NULL);
CComPtr< IFrist > pIFrist;
pIFrist.CoCreateInstance(CLSID_Frist);//创建com对象
CEvent oEvent;//创建处理连接点对象
oEvent.DispEventAdvise(pIFrist);//注册连接点处理
pIFrist->Show();//调用com事件
oEvent.DispEventUnadvise(pIFrist);//取消连接点处理
pIFrist.Release();
::CoUninitialize();
return 0;
}
static _ATL_FUNC_INFO FunInfo = {CC_STDCALL, VT_EMPTY, 0,NULL};
class CEvent :public IDispEventSimpleImpl<1, CEvent,&DIID__IFristEvents>
{
public:
CEvent();
virtual ~CEvent();
BEGIN_SINK_MAP(CEvent)
SINK_ENTRY_INFO(1,DIID__IFristEvents,0x1,OnShow,&FunInfo)
END_SINK_MAP()
STDMETHOD(OnShow)();
};
CEvent::CEvent()
{
}
CEvent::~CEvent()
{
}
STDMETHODIMP CEvent::OnShow()
{
::MessageBox(0,"EVENT",0,0);
return S_OK;
}
CComModule _Module;
int main(int argc, char* argv[])
{
HRESULT hr= ::CoInitialize(NULL);
CComPtr< IFrist > pIFrist;
pIFrist.CoCreateInstance(CLSID_Frist);//创建com对象
CEvent oEvent;//创建处理连接点对象
oEvent.DispEventAdvise(pIFrist);//注册连接点处理
pIFrist->Show();//调用com事件
oEvent.DispEventUnadvise(pIFrist);//取消连接点处理
pIFrist.Release();
::CoUninitialize();
return 0;
}