0

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

请帮助我,谢谢!

4

1 回答 1

1

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

于 2016-07-11T05:39:24.060 回答