Получение дескриптора окна 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, чтобы получить значение? Или мне нужно запросить, чтобы получить значение.
Спасибо
1 ответ:
FinalConstruct
еще слишком рано. В FinalConstruct ваш класс только создается и еще не инициализирован. Нет никакого сайта "на месте", нет еще сайта вообще.Ваш контроль будет вызван его владельцем, ему будет предоставлен его сайт, затем активирован - только тогда вы, возможно, будете иметь
m_pInPlaceSite
доступным.