Как получить указатель / интерфейс LPDISPATCH и передать его элементу управления ActiveX

Я использую 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:......
}

Пожалуйста, помогите мне, спасибо!

0

Решение

Ваш OnExtRequest() Метод обратного вызова не является частью объекта ActiveX, поэтому вы не могу передать его напрямую SetOnExtRequest(), Вам нужно написать класс, который реализует IDispatch и иметь его Invoke() реализация назвать ваш OnExtRequest() метод. Затем создайте экземпляр этого класса и передайте его SetOnExtRequest(),

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]