PRB: GetControlUnknown() Returns NULL in COleControlLast reviewed: August 7, 1997Article ID: Q166767 |
The information in this article applies to:
SYMPTOMSWhen you call GetControlUnknown() from inside a COleControl-derived class, it always returns NULL.
CAUSEThe function CWnd::GetControlUnknown() should be called from the control container.
RESOLUTIONCall CCmdTarget::GetControllingUnknown() instead of CWnd::GetControlUnknown().
STATUSThis behavior is by design.
MORE INFORMATIONCWnd::GetControlUnknown() can be called to check if the CWnd is being used as a proxy, or wrapper, for a contained Activex control. It does this by checking the m_pCtrlSite CWnd member to see if it's NULL or not. If m_pCtrlSite is NULL, then NULL is returned. Since m_pCtrlSite is only set when the CWnd represents a contained ActiveX control, m_pCtrlSite will always be NULL if GetControlUnknown() is called from inside an ActiveX control's source. CCmdTarget::GetControllingUnknown() can be used to get the IUnknown of the outer, or controlling, object from within an object which is being aggregated. If the object is not being aggregated then CCmdTarget::GetControllingUnknown() simply returns the object's own IUnknown. Note that CCmdTarget::GetControllingUnknown() is an undocumented function and may change in future versions of MFC. Keywords : MfcOLE kbprg Technology : kbole Version : 4.2 4.2b 5.0 Platform : NT WINDOWS Issue type : kbprb |
================================================================================
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |