static HRESULT WINAPI InPlaceFrame_QueryInterface(IOleInPlaceFrame *iface, REFIID riid, void **ppv) { DocHost *This = INPLACEFRAME_THIS(iface); *ppv = NULL; if(IsEqualGUID(&IID_IUnknown, riid)) { TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = INPLACEFRAME(This); }else if(IsEqualGUID(&IID_IOleWindow, riid)) { TRACE("(%p)->(IID_IOleWindow %p)\n", This, ppv); *ppv = INPLACEFRAME(This); }else if(IsEqualGUID(&IID_IOleInPlaceUIWindow, riid)) { TRACE("(%p)->(IID_IOleInPlaceUIWindow %p)\n", This, ppv); *ppv = INPLACEFRAME(This); }else if(IsEqualGUID(&IID_IOleInPlaceFrame, riid)) { TRACE("(%p)->(IID_IOleInPlaceFrame %p)\n", This, ppv); *ppv = INPLACEFRAME(This); } if(*ppv) { IOleInPlaceFrame_AddRef(INPLACEFRAME(This)); return S_OK; } WARN("Unsopported interface %s\n", debugstr_guid(riid)); return E_NOINTERFACE; }
static HRESULT WINAPI InPlaceSite_GetWindowContext(IOleInPlaceSite *iface, IOleInPlaceFrame **ppFrame, IOleInPlaceUIWindow **ppDoc, LPRECT lprcPosRect, LPRECT lprcClipRect, LPOLEINPLACEFRAMEINFO lpFrameInfo) { DocHost *This = INPLACESITE_THIS(iface); TRACE("(%p)->(%p %p %p %p %p)\n", This, ppFrame, ppDoc, lprcPosRect, lprcClipRect, lpFrameInfo); IOleInPlaceFrame_AddRef(INPLACEFRAME(This)); *ppFrame = INPLACEFRAME(This); *ppDoc = NULL; GetClientRect(This->hwnd, lprcPosRect); memcpy(lprcClipRect, lprcPosRect, sizeof(RECT)); lpFrameInfo->cb = sizeof(*lpFrameInfo); lpFrameInfo->fMDIApp = FALSE; lpFrameInfo->hwndFrame = This->frame_hwnd; lpFrameInfo->haccel = NULL; lpFrameInfo->cAccelEntries = 0; /* FIXME: should be 5 */ return S_OK; }