如何获取LPDISPATCH指针/接口并将其传递给activeX Control

时间:2016-07-11 03:37:50

标签: c++ callback mfc activex idispatch

我在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:......
}

Plz帮助我,谢谢!

1 个答案:

答案 0 :(得分:1)

您的OnExtRequest()回调方法不是ActiveX对象的一部分,因此您无法将其直接传递给SetOnExtRequest()。您需要编写一个实现IDispatch的类,并使其Invoke()实现调用您的OnExtRequest()方法。然后创建该类的实例并将其传递给SetOnExtRequest()