45 if(
This->doc_host.hwnd)
64 IOleControlSite_OnFocus(control_site, got_focus);
65 IOleControlSite_Release(control_site);
72 static const WCHAR wszTHIS[] = {
'T',
'H',
'I',
'S',0};
103 static const WCHAR wszShellEmbedding[] =
104 {
'S',
'h',
'e',
'l',
'l',
' ',
'E',
'm',
'b',
'e',
'd',
'd',
'i',
'n',
'g',0};
123 IOleInPlaceSite_GetWindow(inplace, &
parent);
124 IOleInPlaceSite_Release(inplace);
129 wszShellEmbedding, wszShellEmbedding,
150 (
void**)&
This->inplace);
152 WARN(
"Could not get IOleInPlaceSite\n");
156 hres = IOleInPlaceSiteEx_CanInPlaceActivate(
This->inplace);
158 WARN(
"CanInPlaceActivate returned: %08lx\n",
hres);
159 IOleInPlaceSiteEx_Release(
This->inplace);
164 hres = IOleInPlaceSiteEx_GetWindow(
This->inplace, &parent_hwnd);
168 IOleInPlaceSiteEx_OnInPlaceActivate(
This->inplace);
170 This->frameinfo.cb =
sizeof(OLEINPLACEFRAMEINFO);
171 IOleInPlaceSiteEx_GetWindowContext(
This->inplace, &
This->doc_host.frame, &
This->uiwindow,
176 This->pos_rect.left,
This->pos_rect.top,
177 This->pos_rect.right-
This->pos_rect.left,
178 This->pos_rect.bottom-
This->pos_rect.top,
184 IOleClientSite_ShowObject(
This->client);
189 IOleContainer_Release(
This->container);
194 if(
This->doc_host.frame)
195 IOleInPlaceFrame_GetWindow(
This->doc_host.frame, &
This->frame_hwnd);
204 static const WCHAR wszitem[] = {
'i',
't',
'e',
'm',0};
208 if(
This->shell_embedding_hwnd)
217 if(
This->ui_activated)
220 IOleInPlaceSiteEx_OnUIActivate(
This->inplace);
222 if(
This->doc_host.frame)
223 IOleInPlaceFrame_SetActiveObject(
This->doc_host.frame, &
This->IOleInPlaceActiveObject_iface, wszitem);
225 IOleInPlaceUIWindow_SetActiveObject(
This->uiwindow, &
This->IOleInPlaceActiveObject_iface, wszitem);
227 if(
This->doc_host.frame)
228 IOleInPlaceFrame_SetMenu(
This->doc_host.frame,
NULL,
NULL,
This->shell_embedding_hwnd);
243 DISPPARAMS dispparams = {
NULL, 0};
253 TRACE(
"Could not get IDispatch\n");
260 IDispatch_Release(disp);
272 IWebBrowser2_put_Offline(&
This->IWebBrowser2_iface,
V_BOOL(&offline));
274 WARN(
"wrong V_VT(silent) %d\n",
V_VT(&offline));
298 IOleClientSite_Release(
This->client);
302 if(
This->client_closed) {
303 IOleClientSite_Release(
This->client_closed);
307 if(destroy_win &&
This->shell_embedding_hwnd) {
313 IOleInPlaceSiteEx_Release(
This->inplace);
317 if(
This->container) {
318 IOleContainer_Release(
This->container);
323 IOleInPlaceUIWindow_Release(
This->uiwindow);
345 *
ppv = &
This->IEnumOLEVERB_iface;
348 *
ppv = &
This->IEnumOLEVERB_iface;
386 static const OLEVERB
verbs[] =
389 TRACE(
"(%p)->(%lu %p %p)\n",
This, celt, rgelt, pceltFetched);
449 return IUnknown_QueryInterface(
This->hlink_frame.outer,
riid,
ppv);
455 return IUnknown_AddRef(
This->hlink_frame.outer);
461 return IUnknown_Release(
This->hlink_frame.outer);
474 TRACE(
"(%p)->(%p)\n",
This, pClientSite);
476 if(
This->client_closed) {
477 IOleClientSite_Release(
This->client_closed);
481 if(
This->client == pClientSite)
484 if(
This->client && pClientSite) {
486 olecmd =
This->doc_host.olecmd;
488 IOleCommandTarget_AddRef(olecmd);
497 if(
This->doc_host.document)
502 IOleClientSite_AddRef(pClientSite);
503 This->client = pClientSite;
508 This->doc_host.client_disp = disp;
510 hres = IOleClientSite_QueryInterface(
This->client, &IID_IDocHostUIHandler,
513 This->doc_host.hostui = hostui;
520 hres = IOleContainer_QueryInterface(
container, &IID_ITargetContainer,
521 (
void**)&target_container);
523 FIXME(
"Unsupported ITargetContainer\n");
524 ITargetContainer_Release(target_container);
527 hres = IOleContainer_QueryInterface(
container, &IID_IOleCommandTarget, (
void**)&olecmd);
533 hres = IOleClientSite_QueryInterface(
This->client, &IID_IOleCommandTarget, (
void**)&olecmd);
539 This->doc_host.olecmd = olecmd;
541 if(
This->shell_embedding_hwnd) {
547 hres = IOleInPlaceSite_GetWindow(inplace, &
parent);
548 IOleInPlaceSite_Release(inplace);
567 TRACE(
"(%p)->(%p)\n",
This, ppClientSite);
573 IOleClientSite_AddRef(
This->client);
574 *ppClientSite =
This->client;
580 LPCOLESTR szContainerObj)
592 if(
This->ui_activated) {
593 if(
This->doc_host.frame)
594 IOleInPlaceFrame_SetActiveObject(
This->doc_host.frame,
NULL,
NULL);
597 IOleInPlaceUIWindow_SetActiveObject(
This->uiwindow,
NULL,
NULL);
600 IOleInPlaceSiteEx_OnUIDeactivate(
This->inplace,
FALSE);
607 IOleInPlaceSiteEx_OnInPlaceDeactivate(
This->inplace);
616 TRACE(
"(%p)->(%ld)\n",
This, dwSaveOption);
618 if(dwSaveOption != OLECLOSE_NOSAVE) {
619 FIXME(
"unimplemented flag: %lx\n", dwSaveOption);
628 IOleClientSite_AddRef(
This->client);
629 hres = IOleObject_SetClientSite(iface,
NULL);
632 if(
This->advise_holder)
633 IOleAdviseHolder_SendOnClose(
This->advise_holder);
641 FIXME(
"(%p)->(%ld, %p)\n",
This, dwWhichMoniker, pmk);
649 FIXME(
"(%p)->(%ld, %ld, %p)\n",
This, dwAssign, dwWhichMoniker, ppmk);
674 TRACE(
"(%p)->(%ld %p %p %ld %p %s)\n",
This, iVerb, lpmsg, pActiveSite, lindex,
hwndParent,
678 if(!
This->client &&
This->client_closed) {
681 IOleObject_SetClientSite(iface,
client);
682 IOleClientSite_Release(
client);
688 TRACE(
"OLEIVERB_SHOW\n");
691 TRACE(
"OLEIVERB_UIACTIVATE\n");
694 TRACE(
"OLEIVERB_INPLACEACTIVATE\n");
697 TRACE(
"OLEIVERB_HIDE\n");
700 IOleInPlaceSiteEx_Release(
This->inplace);
703 if(
This->shell_embedding_hwnd)
707 FIXME(
"stub for %ld\n", iVerb);
719 TRACE(
"(%p)->(%p)\n",
This, ppEnumOleVerb);
729 *ppEnumOleVerb = &
ret->IEnumOLEVERB_iface;
753 *pClsid =
This->version == 1 ? CLSID_WebBrowser_V1 : CLSID_WebBrowser;
758 LPOLESTR* pszUserType)
761 TRACE(
"(%p, %ld, %p)\n",
This, dwFormOfType, pszUserType);
769 TRACE(
"(%p)->(%lx %p)\n",
This, dwDrawAspect, psizel);
772 This->extent = *psizel;
780 TRACE(
"(%p)->(%lx, %p)\n",
This, dwDrawAspect, psizel);
783 *psizel =
This->extent;
788 DWORD *pdwConnection)
793 TRACE(
"(%p)->(%p, %p)\n",
This, pAdvSink, pdwConnection);
803 if(!
This->advise_holder)
807 hr = IOleAdviseHolder_Advise(
This->advise_holder, pAdvSink, pdwConnection);
816 TRACE(
"(%p)->(%ld)\n",
This, dwConnection);
818 if(!
This->advise_holder)
821 return IOleAdviseHolder_Unadvise(
This->advise_holder, dwConnection);
828 TRACE(
"(%p)->(%p): returning E_NOTIMPL\n",
This, ppenumAdvise);
830 *ppenumAdvise =
NULL;
838 TRACE(
"(%p)->(%lx, %p)\n",
This, dwAspect, pdwStatus);
894 return IUnknown_QueryInterface(
This->hlink_frame.outer,
riid, ppobj);
900 return IUnknown_AddRef(
This->hlink_frame.outer);
906 return IUnknown_Release(
This->hlink_frame.outer);
915 *phwnd =
This->shell_embedding_hwnd;
933 IOleInPlaceSiteEx_Release(
This->inplace);
954 This->pos_rect = *lprcPosRect;
957 This->clip_rect = *lprcClipRect;
959 if(
This->shell_embedding_hwnd) {
961 lprcPosRect->
left, lprcPosRect->
top,
1003 return IUnknown_QueryInterface(
This->hlink_frame.outer,
riid, ppobj);
1009 return IUnknown_AddRef(
This->hlink_frame.outer);
1015 return IUnknown_Release(
This->hlink_frame.outer);
1042 case DISPID_UNKNOWN:
1055 FIXME(
"Unknown dispID %ld\n", dispID);
1086 return IUnknown_QueryInterface(
This->hlink_frame.outer,
riid,
ppv);
1092 return IUnknown_AddRef(
This->hlink_frame.outer);
1098 return IUnknown_Release(
This->hlink_frame.outer);
1105 return IOleInPlaceObject_GetWindow(&
This->IOleInPlaceObject_iface, phwnd);
1112 return IOleInPlaceObject_ContextSensitiveHelp(&
This->IOleInPlaceObject_iface, fEnterMode);
1124 if(
This->doc_host.document) {
1125 if(
SUCCEEDED(IUnknown_QueryInterface(
This->doc_host.document,
1127 (
void**)&activeobj))) {
1128 hr = IOleInPlaceActiveObject_TranslateAccelerator(activeobj, lpmsg);
1129 IOleInPlaceActiveObject_Release(activeobj);
1159 FIXME(
"(%p)->(%p %p %x)\n",
This, lprcBorder, pUIWindow, fFrameWindow);
1193 return IUnknown_QueryInterface(
This->hlink_frame.outer,
riid,
ppv);
1199 return IUnknown_AddRef(
This->hlink_frame.outer);
1205 return IUnknown_Release(
This->hlink_frame.outer);
1209 const GUID *pguidCmdGroup,
ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText)
1218 if(!
This->doc_host.document)
1224 hres = IUnknown_QueryInterface(
This->doc_host.document, &IID_IOleCommandTarget, (
void**)&cmdtrg);
1228 hres = IOleCommandTarget_QueryStatus(cmdtrg, pguidCmdGroup, cCmds, prgCmds, pCmdText);
1229 IOleCommandTarget_Release(cmdtrg);
#define InterlockedIncrement
#define InterlockedDecrement
static const char * wine_dbgstr_rect(const RECT *prc)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
HRESULT WINAPI OleRegGetUserType(REFCLSID clsid, DWORD form, LPOLESTR *usertype)
void activate_document(DocHost *This)
void on_commandstate_change(DocHost *doc_host, LONG command, BOOL enable)
LRESULT process_dochost_tasks(DocHost *This)
void deactivate_document(DocHost *This)
void release_dochost_client(DocHost *This)
static const char * debugstr_variant(const VARIANT *var)
GLint GLint GLsizei GLsizei height
GLint GLint GLsizei width
#define DISPID_AMBIENT_OFFLINEIFNOTCONNECTED
#define DISPID_AMBIENT_SILENT
HINSTANCE ieframe_instance
LONG WINAPI SetQueryNetSessionCount(DWORD session_op)
static VARIANTARG static DISPID
#define DISPID_AMBIENT_DLCONTROL
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
INT WINAPI MulDiv(INT nNumber, INT nNumerator, INT nDenominator)
#define LOCALE_SYSTEM_DEFAULT
interface IMoniker * LPMONIKER
interface IDataObject * LPDATAOBJECT
#define OLEIVERB_UIACTIVATE
#define OLEIVERB_INPLACEACTIVATE
HRESULT WINAPI CreateOleAdviseHolder(IOleAdviseHolder **ppOAHolder)
#define DISPATCH_PROPERTYGET
const GUID IID_IOleInPlaceActiveObject
const GUID IID_IOleInPlaceSite
const GUID IID_IOleControlSite
const GUID IID_IEnumOLEVERB
static HRESULT WINAPI InPlaceActiveObject_GetWindow(IOleInPlaceActiveObject *iface, HWND *phwnd)
static HRESULT WINAPI OleInPlaceObject_GetWindow(IOleInPlaceObject *iface, HWND *phwnd)
static ULONG WINAPI OleInPlaceObject_Release(IOleInPlaceObject *iface)
static HRESULT WINAPI OleControl_FreezeEvents(IOleControl *iface, BOOL bFreeze)
static HRESULT WINAPI InPlaceActiveObject_OnDocWindowActivate(IOleInPlaceActiveObject *iface, BOOL fActivate)
static HRESULT WINAPI OleObject_GetMiscStatus(IOleObject *iface, DWORD dwAspect, DWORD *pdwStatus)
static HRESULT WINAPI OleObject_IsUpToDate(IOleObject *iface)
static HRESULT WINAPI OleObject_Advise(IOleObject *iface, IAdviseSink *pAdvSink, DWORD *pdwConnection)
static HRESULT WINAPI WBOleCommandTarget_QueryStatus(IOleCommandTarget *iface, const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText)
static HRESULT activate_inplace(WebBrowser *This, IOleClientSite *active_site)
static HRESULT WINAPI OleObject_GetMoniker(IOleObject *iface, DWORD dwAssign, DWORD dwWhichMoniker, LPMONIKER *ppmk)
static void notify_on_focus(WebBrowser *This, BOOL got_focus)
static HRESULT WINAPI OleInPlaceObject_QueryInterface(IOleInPlaceObject *iface, REFIID riid, LPVOID *ppobj)
static HRESULT WINAPI InPlaceActiveObject_ContextSensitiveHelp(IOleInPlaceActiveObject *iface, BOOL fEnterMode)
void WebBrowser_OleObject_Destroy(WebBrowser *This)
static HRESULT WINAPI EnumOLEVERB_QueryInterface(IEnumOLEVERB *iface, REFIID riid, void **ppv)
static HRESULT WINAPI OleObject_QueryInterface(IOleObject *iface, REFIID riid, void **ppv)
static HRESULT WINAPI InPlaceActiveObject_OnFrameWindowActivate(IOleInPlaceActiveObject *iface, BOOL fActivate)
static HRESULT WINAPI OleObject_DoVerb(IOleObject *iface, LONG iVerb, struct tagMSG *lpmsg, LPOLECLIENTSITE pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect)
static ULONG WINAPI EnumOLEVERB_AddRef(IEnumOLEVERB *iface)
static HRESULT on_silent_change(WebBrowser *This)
static HRESULT WINAPI OleObject_EnumAdvise(IOleObject *iface, IEnumSTATDATA **ppenumAdvise)
static HRESULT WINAPI OleControl_GetControlInfo(IOleControl *iface, LPCONTROLINFO pCI)
static ULONG WINAPI OleObject_AddRef(IOleObject *iface)
static ULONG WINAPI InPlaceActiveObject_AddRef(IOleInPlaceActiveObject *iface)
static HRESULT WINAPI WBOleCommandTarget_QueryInterface(IOleCommandTarget *iface, REFIID riid, void **ppv)
void WebBrowser_OleObject_Init(WebBrowser *This)
static LRESULT resize_window(WebBrowser *This, LONG width, LONG height)
static WebBrowser * impl_from_IOleInPlaceObject(IOleInPlaceObject *iface)
static HRESULT WINAPI OleObject_GetClipboardData(IOleObject *iface, DWORD dwReserved, LPDATAOBJECT *ppDataObject)
static const IOleInPlaceObjectVtbl OleInPlaceObjectVtbl
static ATOM shell_embedding_atom
static ULONG WINAPI WBOleCommandTarget_AddRef(IOleCommandTarget *iface)
static ULONG WINAPI InPlaceActiveObject_Release(IOleInPlaceActiveObject *iface)
static HRESULT WINAPI OleInPlaceObject_ContextSensitiveHelp(IOleInPlaceObject *iface, BOOL fEnterMode)
static HRESULT activate_ui(WebBrowser *This, IOleClientSite *active_site)
static const IOleInPlaceActiveObjectVtbl OleInPlaceActiveObjectVtbl
static HRESULT WINAPI OleObject_GetExtent(IOleObject *iface, DWORD dwDrawAspect, SIZEL *psizel)
static ULONG WINAPI WBOleCommandTarget_Release(IOleCommandTarget *iface)
static HRESULT WINAPI WBOleCommandTarget_Exec(IOleCommandTarget *iface, const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
static WebBrowser * impl_from_IOleControl(IOleControl *iface)
static HRESULT WINAPI OleObject_GetUserType(IOleObject *iface, DWORD dwFormOfType, LPOLESTR *pszUserType)
static HRESULT WINAPI OleControl_OnAmbientPropertyChange(IOleControl *iface, DISPID dispID)
static WebBrowser * impl_from_IOleObject(IOleObject *iface)
static ULONG WINAPI EnumOLEVERB_Release(IEnumOLEVERB *iface)
static HRESULT WINAPI EnumOLEVERB_Reset(IEnumOLEVERB *iface)
static HRESULT WINAPI EnumOLEVERB_Next(IEnumOLEVERB *iface, ULONG celt, OLEVERB *rgelt, ULONG *pceltFetched)
static ULONG WINAPI OleObject_Release(IOleObject *iface)
static HRESULT WINAPI OleInPlaceObject_ReactivateAndUndo(IOleInPlaceObject *iface)
static HRESULT WINAPI OleObject_SetHostNames(IOleObject *iface, LPCOLESTR szContainerApp, LPCOLESTR szContainerObj)
static HRESULT WINAPI InPlaceActiveObject_ResizeBorder(IOleInPlaceActiveObject *iface, LPCRECT lprcBorder, IOleInPlaceUIWindow *pUIWindow, BOOL fFrameWindow)
static HRESULT WINAPI OleObject_GetUserClassID(IOleObject *iface, CLSID *pClsid)
static HRESULT WINAPI OleObject_GetClientSite(IOleObject *iface, LPOLECLIENTSITE *ppClientSite)
static HRESULT WINAPI EnumOLEVERB_Clone(IEnumOLEVERB *iface, IEnumOLEVERB **ppenum)
static ULONG WINAPI OleControl_Release(IOleControl *iface)
static WebBrowser * impl_from_IOleCommandTarget(IOleCommandTarget *iface)
static HRESULT WINAPI OleInPlaceObject_InPlaceDeactivate(IOleInPlaceObject *iface)
static void deactivate_ui(WebBrowser *This)
static const IOleObjectVtbl OleObjectVtbl
static WebBrowser * impl_from_IOleInPlaceActiveObject(IOleInPlaceActiveObject *iface)
static HRESULT on_offlineconnected_change(WebBrowser *This)
static HRESULT WINAPI OleObject_SetMoniker(IOleObject *iface, DWORD dwWhichMoniker, IMoniker *pmk)
static void create_shell_embedding_hwnd(WebBrowser *This)
static const IEnumOLEVERBVtbl EnumOLEVERBVtbl
static ULONG WINAPI OleInPlaceObject_AddRef(IOleInPlaceObject *iface)
static HRESULT WINAPI InPlaceActiveObject_QueryInterface(IOleInPlaceActiveObject *iface, REFIID riid, void **ppv)
static HRESULT WINAPI InPlaceActiveObject_EnableModeless(IOleInPlaceActiveObject *iface, BOOL fEnable)
static HRESULT WINAPI OleObject_EnumVerbs(IOleObject *iface, IEnumOLEVERB **ppEnumOleVerb)
static HRESULT WINAPI OleObject_Update(IOleObject *iface)
static ULONG WINAPI OleControl_AddRef(IOleControl *iface)
static HRESULT WINAPI OleObject_SetExtent(IOleObject *iface, DWORD dwDrawAspect, SIZEL *psizel)
static HRESULT WINAPI OleControl_QueryInterface(IOleControl *iface, REFIID riid, LPVOID *ppobj)
static HRESULT WINAPI OleInPlaceObject_SetObjectRects(IOleInPlaceObject *iface, LPCRECT lprcPosRect, LPCRECT lprcClipRect)
HWND WINAPI SHSetParentHwnd(HWND hWnd, HWND hWndParent)
static const IOleCommandTargetVtbl OleCommandTargetVtbl
static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, LPOLECLIENTSITE pClientSite)
static HRESULT WINAPI EnumOLEVERB_Skip(IEnumOLEVERB *iface, ULONG celt)
static HRESULT WINAPI OleObject_InitFromData(IOleObject *iface, LPDATAOBJECT pDataObject, BOOL fCreation, DWORD dwReserved)
static HRESULT WINAPI OleObject_SetColorScheme(IOleObject *iface, LOGPALETTE *pLogpal)
static void release_client_site(WebBrowser *This, BOOL destroy_win)
static HRESULT WINAPI OleObject_Unadvise(IOleObject *iface, DWORD dwConnection)
static HRESULT WINAPI OleObject_Close(IOleObject *iface, DWORD dwSaveOption)
static HRESULT WINAPI InPlaceActiveObject_TranslateAccelerator(IOleInPlaceActiveObject *iface, LPMSG lpmsg)
static EnumOLEVERB * impl_from_IEnumOLEVERB(IEnumOLEVERB *iface)
static const IOleControlVtbl OleControlVtbl
static HRESULT WINAPI OleControl_OnMnemonic(IOleControl *iface, struct tagMSG *pMsg)
static HRESULT WINAPI OleInPlaceObject_UIDeactivate(IOleInPlaceObject *iface)
static HRESULT get_client_disp_property(IOleClientSite *client, DISPID dispid, VARIANT *res)
static LRESULT WINAPI shell_embedding_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
#define IsEqualGUID(rguid1, rguid2)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
HWND WINAPI SetFocus(_In_opt_ HWND)
HWND WINAPI CreateWindowExW(_In_ DWORD dwExStyle, _In_opt_ LPCWSTR lpClassName, _In_opt_ LPCWSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)
BOOL WINAPI SetPropW(_In_ HWND, _In_ LPCWSTR, _In_opt_ HANDLE)
ATOM WINAPI RegisterClassExW(_In_ CONST WNDCLASSEXW *)
HDC WINAPI GetDC(_In_opt_ HWND)
HANDLE WINAPI GetPropW(_In_ HWND, _In_ LPCWSTR)
BOOL WINAPI DestroyWindow(_In_ HWND)
@ OLEMISC_ACTIVATEWHENVISIBLE
@ OLEMISC_SETCLIENTSITEFIRST
@ OLEMISC_RECOMPOSEONRESIZE
IEnumOLEVERB IEnumOLEVERB_iface
#define CONTAINING_RECORD(address, type, field)
void WINAPI VariantInit(VARIANTARG *pVarg)
#define OLE_E_NOCONNECTION
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)