获取ActiveX窗口句柄

时间:2012-12-04 19:56:03

标签: c++ com activex atl

我已按照此link获取ActiveX控件的窗口句柄

微软网站的示例代码

// 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 个答案:

答案 0 :(得分:1)

FinalConstruct太早了。在FinalConstruct中,您的类刚刚被创建并且尚未初始化。没有“到位”网站,根本没有网站。

您的控件将由其所有者调用,它将被提供给其网站,然后被激活 - 只有这样您才可能m_pInPlaceSite可用。