Get Parent Iunknown
Frank -- FMEYER@INTEGRAL.MHS.CompuServe.COM Wednesday, May 08, 1996 We are placing an OCX onto another OCX as a child window. We need to get the parents Iunknown or Idispatch. Writing VBX's this was possible because form the parents HWND we could get the parents HCTL and hence the known properties. We are writing OCX's and have failed to get the parents iunknown due to the fact that the GetParent call is creating a temporary CWnd. Basically with any window how do you determine the whether it has an Iunknown interface and get it's pointer?????????????????? Help Thanks Frank Meyer/Raj Mal
Randal Parsons -- Randal.Parsons@btal.com.au Friday, May 10, 1996 Meyer, Frank wrote: > > We are placing an OCX onto another OCX as a child window. We need to get the > parents Iunknown or Idispatch. > > Writing VBX's this was possible because form the parents HWND we could get > the parents HCTL and hence the known properties. > > We are writing OCX's and have failed to get the parents iunknown due to the > fact that the GetParent call is creating a temporary CWnd. > > Basically with any window how do you determine the whether it has an > Iunknown interface and get it's pointer?????????????????? > I'm not totally sure that this will work, but here's a code fragment that may be helpful : // I use this code to get the owner of a control so that I can create its // property dialog when I want. CWnd* pWnd = GetParent(); HWND hWndParent = (pWnd ? pWnd->GetSafeHwnd() : 0); CWnd* pWndOwner = CWnd::GetSafeOwner(CWnd::FromHandle(hWndParent)); // I guess you can do this LPUNKNOWN pUnk = (pWndOwner ? pWndOwner->GetIDispatch(FALSE) : 0); The first section of code is a slightly modified form of code I found in http://www.sky.net/~toma/faq.htm which is an OLE Controls FAQ. Regards, Randal Parsons.
| Вернуться в корень Архива |