static HRESULT WINAPI DocHostUIHandler_ShowContextMenu(IDocHostUIHandler2 *iface, DWORD dwID, POINT *ppt, IUnknown *pcmdtReserved, IDispatch *pdispReserved) { DocHost *This = impl_from_IDocHostUIHandler2(iface); HRESULT hres; TRACE("(%p)->(%d %p %p %p)\n", This, dwID, ppt, pcmdtReserved, pdispReserved); if(This->hostui) { hres = IDocHostUIHandler_ShowContextMenu(This->hostui, dwID, ppt, pcmdtReserved, pdispReserved); if(hres == S_OK) return S_OK; } FIXME("default action not implemented\n"); return E_NOTIMPL; }
void HTMLDocument_ShowContextMenu(HTMLDocument *This, DWORD dwID, POINT *ppt) { HMENU menu_res, menu; HRESULT hres; hres = IDocHostUIHandler_ShowContextMenu(This->hostui, dwID, ppt, (IUnknown*)CMDTARGET(This), (IDispatch*)HTMLDOC(This)); if(hres == S_OK) return; menu_res = LoadMenuW(hInst, MAKEINTRESOURCEW(IDR_BROWSE_CONTEXT_MENU)); menu = GetSubMenu(menu_res, dwID); TrackPopupMenu(menu, TPM_LEFTALIGN | TPM_RIGHTBUTTON | TPM_RETURNCMD, ppt->x, ppt->y, 0, This->hwnd, NULL); DestroyMenu(menu_res); }