【发布时间】:2016-11-12 22:05:18
【问题描述】:
我在 Windows 7 64 位的 Visual Studio 2015 中使用 MFC。
在我的应用程序中,有一个activeX控件,我需要在activeX控件和我的应用程序之间进行通信。
但是 activeX 需要我的应用程序向它传递一个 LPDISPATCH 指针/接口。
我应该如何获取应用程序方法(OnExtRequest)的 LPDISPATCH 指针/接口?
这是activeX提供的方法:
void SetOnExtRequest(LPDISPATCH propVal)
{
SetProperty(0x4, VT_DISPATCH, propVal);
}
这是我的应用程序的回调函数(将此函数的 LPDISPATCH 指针/接口传递给 activeX)
int CMyDlg::OnExtRequest(CString sObj, int uMeth, CString sData, int uHandle, CString sPeer)
{
//TODO:......
}
请帮帮我,谢谢!
【问题讨论】:
-
嗯,你有很多工作要做。您的 CMyDlg 类必须实现 IDispatch。而且您必须重写该函数,ActiveX 控件无法将 CString 传递给您。字符串的自动化类型是 BSTR。
-
谢谢,我知道这是个问题,但是实现 IDispatch 更好,你能给我看一个示例代码还是只是一个 iDispatch 类.thx。
标签: c++ callback mfc activex idispatch