我在 Windows 7 64 位的 Visual Studio 2015 中使用 MFC。
在我的应用程序中,有一个 activeX 控件,我需要在 activeX 控件和我的应用程序之间进行通信。
但是 activeX 需要我的应用程序将 LPDISPATCH 指针/接口(interface)传递给它。
我应该如何获取应用程序方法 (OnExtRequest) 的 LPDISPATCH 指针/接口(interface)?
这是activeX提供的方法:
void SetOnExtRequest(LPDISPATCH propVal)
{
SetProperty(0x4, VT_DISPATCH, propVal);
}
这是我的应用程序的回调函数(将此函数的 LPDISPATCH 指针/接口(interface)传递给 activeX)
int CMyDlg::OnExtRequest(CString sObj, int uMeth, CString sData, int uHandle, CString sPeer)
{
//TODO:......
}
请帮帮我,谢谢!
最佳答案
您的 OnExtRequest()
回调方法不是 ActiveX 对象的一部分,因此您不能将它直接传递给 SetOnExtRequest()
。您需要编写一个实现 IDispatch
的类,并让它的 Invoke()
实现调用您的 OnExtRequest()
方法。然后创建该类的实例并将其传递给 SetOnExtRequest()
。
关于c++ - 如何获取 LPDISPATCH 指针/接口(interface)并将其传递给 activeX 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38298806/