描述:
初用COM,有个问题不解: 我在用MFC调用别人的COM库时,不会调用dll中的事件(如:OnMouseDown)
具体如下:
.....
#include "GxProxy.h"
#include "GxProxy.c"
//上面的.h和.c文件是注册GxProxy.dll后用 OLE/COM Object Viewer导出的
.......
HRESULT hrGxProxy;
IGxProxy *pGxProxy;
.......
VARIANT varUserIp;
VARIANT varUserName;
VARIANT varUserPass;
hrGxProxy = CoInitialize(0);
if(SUCCEEDED(hrGxProxy))
{
hrGxProxy = CoCreateInstance( CLSID_GxProxy,NULL,
CLSCTX_INPROC_SERVER,
IID_IGxProxy,(void**) &pGxProxy);
pGxProxy->CreateInstance();
......
pGxProxy->LogOn(varUserIP,varUserName,varUserPass);
//问题在这了,上面是一个登陆的函数,当登陆成功后会产生两个事件,
//OnLogOn 和 OnEntity 这两事件该如何相应???
......
}
//下面是GxProxy.h 文件的部分内容.
......
EXTERN_C const IID IID_IGxProxy;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("7798E5EB-C10B-40CF-A22C-515F10E03DFA")
IGxProxy : public IDispatch
{
public:
virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LogOn(
/* [in] */ VARIANT strUserIp,
/* [in] */ VARIANT strUserName,
/* [in] */ VARIANT strPassword) = 0;
......
EXTERN_C const IID IID_IGxProxyNotify;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("54F9DFF6-6296-4FBD-986E-FF0788E17EAE")
IGxProxyNotify : public IDispatch
{
public:
virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OnLogon( void) = 0;
virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OnLogoff( void) = 0;
virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OnEntity(
/* [in] */ VARIANT bstrGuidEntity,
/* [in] */ VARIANT bstrEntityName) = 0;
......
帮帮忙,很急的问题 .都想了好久了 @_@
解决方案1:
关键词:
“连接点”“advise”
搜