Получение дескриптора окна ActiveX

Я следил за этим ссылка на сайт получить дескриптор окна элемента управления ActiveX

Пример кода с сайта Microsoft

// The following code should return the actual parent window of the ActiveX control.
HWND CMyOleControl::GetActualParent()
{
HWND hwndParent = 0;

// Get the window associated with the in-place site object,
// which is connected to this ActiveX control.
if (m_pInPlaceSite != NULL)
m_pInPlaceSite->GetWindow(&hwndParent);

return hwndParent;     // Return the in-place site window handle.
}

Но в моем случае я продолжаю находить, что «m_pInPlaceSite» всегда NULL. Я пытаюсь запустить этот код в моих элементах управления FinalConstruct. Есть ли что-то еще, что мне нужно реализовать, чтобы m_pInPlaceSite получить значение? Или мне нужно запросить, чтобы получить значение.

Спасибо

2

Решение

FinalConstruct слишком рано В FinalConstruct ваш класс только создается и еще не инициализирован. Сайт «на месте» отсутствует, сайта еще нет.

Ваш контроль будет вызван его владельцем, ему дадут свой сайт, затем активируют — только тогда у вас будет возможность m_pInPlaceSite имеется в наличии.

1

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

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