Я использую MFC в Visual Studio 2015 на Windows 7 64Bit.
В моем приложении есть элемент управления ActiveX, мне нужно установить связь между элементом управления ActiveX и моим приложением.
Но activeX нужно, чтобы мое приложение передавало указатель / интерфейс LPDISPATCH.
Как мне сделать, чтобы получить указатель / интерфейс LPDISPATCH метода моего приложения (OnExtRequest)?
Это метод, предоставляемый 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:......
}
Пожалуйста, помогите мне, спасибо!
Ваш OnExtRequest()
Метод обратного вызова не является частью объекта ActiveX, поэтому вы не могу передать его напрямую SetOnExtRequest()
, Вам нужно написать класс, который реализует IDispatch
и иметь его Invoke()
реализация назвать ваш OnExtRequest()
метод. Затем создайте экземпляр этого класса и передайте его SetOnExtRequest()
,
Других решений пока нет …