32#define DOCHOST_DOCCANNAVIGATE 0
35#define CMDID_EXPLORER_UPDATEHISTORY 38
85 DISPPARAMS dispparams;
91 dispparams.cNamedArgs = 0;
92 dispparams.rgdispidNamedArgs =
NULL;
93 dispparams.rgvarg =
params;
116 DISPPARAMS dispparams;
120 dispparams.cArgs = 2;
121 dispparams.cNamedArgs = 0;
122 dispparams.rgdispidNamedArgs =
NULL;
123 dispparams.rgvarg =
params;
134 TRACE(
"%ld >>>\n", dispid);
136 TRACE(
"%ld <<<\n", dispid);
148 if(!
This->document) {
149 WARN(
"document == NULL\n");
153 hres = IUnknown_QueryInterface(
This->document, &IID_IHlinkTarget, (
void**)&hlink);
155 hres = IHlinkTarget_Navigate(hlink, 0,
NULL);
156 IHlinkTarget_Release(hlink);
158 FIXME(
"Navigate failed\n");
163 TRACE(
"No IHlink iface\n");
167 FIXME(
"Could not get IOleObject iface: %08lx\n",
hres);
173 IOleObject_Release(ole_object);
193 IDispatch_Release(disp);
195 WARN(
"Invoke(DISPID_READYSTATE failed: %08lx\n",
hres);
220 IConnectionPointContainer_Release(cp_container);
225 hres = IConnectionPoint_Advise(
cp, (
IUnknown*)&
This->IPropertyNotifySink_iface, &
This->prop_notif_cookie);
227 hres = IConnectionPoint_Unadvise(
cp,
This->prop_notif_cookie);
228 IConnectionPoint_Release(
cp);
236 This->doc_state = doc_state;
237 if(doc_state >
This->ready_state)
238 This->ready_state = doc_state;
243 if(ready_state > READYSTATE_LOADING &&
This->travellog.loading_pos != -1) {
244 WARN(
"histupdate not notified\n");
245 This->travellog.position =
This->travellog.loading_pos;
246 This->travellog.loading_pos = -1;
249 if(ready_state > READYSTATE_LOADING &&
This->doc_state <= READYSTATE_LOADING && !
This->browser_service )
252 if(ready_state == READYSTATE_COMPLETE &&
This->doc_state < READYSTATE_COMPLETE) {
254 if(!
This->browser_service)
271 IUnknown_Release(
task->doc);
287 IUnknown_AddRef(
This->document);
289 task->ready_state = ready_state;
306 READYSTATE ready_state;
311 IUnknown_AddRef(doc);
312 This->document = doc;
318 hres = IOleObject_GetUserClassID(oleobj, &
clsid);
320 TRACE(
"Got clsid %s\n",
323 hres = IOleObject_SetClientSite(oleobj, &
This->IOleClientSite_iface);
325 FIXME(
"SetClientSite failed: %08lx\n",
hres);
327 IOleObject_Release(oleobj);
329 FIXME(
"Could not get IOleObject iface: %08lx\n",
hres);
339 if(ready_state == READYSTATE_COMPLETE)
341 if(ready_state != READYSTATE_COMPLETE ||
This->doc_navigate)
343 }
else if(!
This->doc_navigate) {
359 IOleDocumentView_SetRect(
This->view, &
rect);
368 static const WCHAR wszTHIS[] = {
'T',
'H',
'I',
'S',0};
388 IStream_Release(
entry->stream);
401 hres = IUnknown_QueryInterface(
This->document, &IID_IPersistHistory, (
void**)&persist_history);
407 hres = IPersistHistory_SaveHistory(persist_history,
stream);
408 IPersistHistory_Release(persist_history);
421 for(
i=0;
i <
This->travellog.length;
i++)
423 if(
i ==
This->travellog.position)
431 static const WCHAR about_schemeW[] = {
'a',
'b',
'o',
'u',
't',
':'};
434 TRACE(
"Skipping about URL\n");
438 if(!
This->travellog.log) {
440 if(!
This->travellog.log)
443 This->travellog.size = 4;
444 }
else if(
This->travellog.size <
This->travellog.position+1) {
447 new_travellog =
realloc(
This->travellog.log,
This->travellog.size * 2 *
sizeof(*
This->travellog.log));
451 This->travellog.log = new_travellog;
452 This->travellog.size *= 2;
455 if(
This->travellog.loading_pos == -1) {
457 while(
This->travellog.length >
This->travellog.position)
461 new_entry =
This->travellog.log +
This->travellog.position;
470 if(
This->travellog.loading_pos == -1) {
471 This->travellog.position++;
472 This->travellog.log[
This->travellog.position].stream =
NULL;
473 This->travellog.log[
This->travellog.position].url =
NULL;
475 This->travellog.position =
This->travellog.loading_pos;
476 This->travellog.loading_pos = -1;
478 if(
This->travellog.position >
This->travellog.length)
479 This->travellog.length =
This->travellog.position;
488 static const WCHAR wszShell_DocObject_View[] =
489 {
'S',
'h',
'e',
'l',
'l',
' ',
'D',
'o',
'c',
'O',
'b',
'j',
'e',
'c',
't',
' ',
'V',
'i',
'e',
'w',0};
498 wszShell_DocObject_View,
509 wszShell_DocObject_View,
522 if(!
This->document)
return;
524 if(
This->doc_navigate) {
525 IUnknown_Release(
This->doc_navigate);
529 if(
This->is_prop_notif)
533 IOleDocumentView_UIActivate(
This->view,
FALSE);
535 hres = IUnknown_QueryInterface(
This->document, &IID_IOleInPlaceObjectWindowless,
538 IOleInPlaceObjectWindowless_InPlaceDeactivate(winobj);
539 IOleInPlaceObjectWindowless_Release(winobj);
543 IOleDocumentView_Show(
This->view,
FALSE);
544 IOleDocumentView_CloseView(
This->view, 0);
545 IOleDocumentView_SetInPlaceSite(
This->view,
NULL);
546 IOleDocumentView_Release(
This->view);
552 IOleObject_Close(oleobj, OLECLOSE_NOSAVE);
554 hres = IUnknown_QueryInterface(
This->document, &IID_IHlinkTarget, (
void**)&hlink);
556 IHlinkTarget_SetBrowseContext(hlink,
NULL);
557 IHlinkTarget_Release(hlink);
566 IOleObject_SetClientSite(oleobj,
NULL);
570 IOleObject_Release(oleobj);
573 IUnknown_Release(
This->document);
586 if(!
This->document) {
587 FIXME(
"no document\n");
591 hres = IUnknown_QueryInterface(
This->document, &IID_IOleCommandTarget, (
void**)&cmdtrg);
597 hres = IOleCommandTarget_Exec(cmdtrg,
NULL, OLECMDID_REFRESH, OLECMDEXECOPT_PROMPTUSER, &vin, &vout);
598 IOleCommandTarget_Release(cmdtrg);
612 if(!
This->document)
return;
614 hres = IUnknown_QueryInterface(
This->document, &IID_IHlinkTarget, (
void**)&hlink);
616 IHlinkTarget_Navigate(hlink, 0,
NULL);
617 IHlinkTarget_Release(hlink);
623 IOleObject_Release(oleobj);
629 IOleDocumentView_UIActivate(
This->view,
TRUE);
640 IDocHostUIHandler_Release(
This->hostui);
644 if(
This->client_disp) {
645 IDispatch_Release(
This->client_disp);
650 IOleInPlaceFrame_Release(
This->frame);
655 IOleCommandTarget_Release(
This->olecmd);
669 return IOleClientSite_QueryInterface(&
This->IOleClientSite_iface,
riid,
ppv);
675 return IOleClientSite_AddRef(&
This->IOleClientSite_iface);
681 return IOleClientSite_Release(&
This->IOleClientSite_iface);
685 const GUID *pguidCmdGroup,
ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText)
692 for(
i=0; prgCmds &&
i < cCmds;
i++)
693 TRACE(
"unsupported command %lu (%lx)\n", prgCmds[
i].cmdID, prgCmds[
i].
cmdf);
709 case OLECMDID_UPDATECOMMANDS:
712 return IOleCommandTarget_Exec(
This->olecmd, pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut);
713 case OLECMDID_SETDOWNLOADSTATE:
715 This->busy =
V_I4(pvaIn) ? VARIANT_TRUE : VARIANT_FALSE;
717 return IOleCommandTarget_Exec(
This->olecmd, pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut);
725 TRACE(
"Unimplemented cmdid %ld\n", nCmdID);
730 if(
IsEqualGUID(pguidCmdGroup, &CGID_DocHostCmdPriv)) {
736 if(
This->doc_navigate)
737 IUnknown_Release(
This->doc_navigate);
767 hres = IUnknown_QueryInterface(
V_UNKNOWN(&htmlwindow), &IID_IHTMLWindow2, (
void**)&win2);
772 IHTMLWindow2_Release(win2);
777 TRACE(
"unsupported command %ld of CGID_DocHostCmdPriv\n", nCmdID);
790 TRACE(
"Unimplemented cmdid %ld of CGID_Explorer\n", nCmdID);
795 if(
IsEqualGUID(pguidCmdGroup, &CGID_ShellDocView)) {
798 TRACE(
"Unimplemented cmdid %ld of CGID_ShellDocView\n", nCmdID);
803 if(
IsEqualGUID(&CGID_DocHostCommandHandler, pguidCmdGroup)) {
806 return IOleCommandTarget_Exec(
This->olecmd, pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut);
830 return IOleClientSite_QueryInterface(&
This->IOleClientSite_iface,
riid,
ppv);
836 return IOleClientSite_AddRef(&
This->IOleClientSite_iface);
842 return IOleClientSite_Release(&
This->IOleClientSite_iface);
851 TRACE(
"(%p)->(%ld %p %p %p)\n",
This, dwID, ppt, pcmdtReserved, pdispReserved);
854 hres = IDocHostUIHandler_ShowContextMenu(
This->hostui, dwID, ppt, pcmdtReserved,
860 FIXME(
"default action not implemented\n");
865 DOCHOSTUIINFO *pInfo)
873 hres = IDocHostUIHandler_GetHostInfo(
This->hostui, pInfo);
889 FIXME(
"(%p)->(%ld %p %p %p %p)\n",
This, dwID, pActiveObject, pCommandTarget,
910 return IDocHostUIHandler_UpdateUI(
This->hostui);
941 FIXME(
"(%p)->(%p %p %X)\n",
This, prcBorder, pUIWindow, fRameWindow);
950 TRACE(
"(%p)->(%p %p %ld)\n",
This, lpMsg, pguidCmdGroup, nCmdID);
953 hr = IDocHostUIHandler_TranslateAccelerator(
This->hostui, lpMsg, pguidCmdGroup, nCmdID);
966 return IDocHostUIHandler_GetOptionKeyPath(
This->hostui, pchKey,
dw);
987 return IDocHostUIHandler_GetExternal(
This->hostui, ppDispatch);
989 if(!
This->shell_ui_helper) {
998 IDispatch_AddRef(*ppDispatch);
1010 return IDocHostUIHandler_TranslateUrl(
This->hostui, dwTranslate,
1011 pchURLIn, ppchURLOut);
1020 FIXME(
"(%p)->(%p %p)\n",
This, pDO, ppDORet);
1036 hres = IDocHostUIHandler_QueryInterface(
This->hostui, &IID_IDocHostUIHandler2,
1039 hres = IDocHostUIHandler2_GetOverrideKeyPath(
handler, pchKey,
dw);
1040 IDocHostUIHandler2_Release(
handler);
1078 return IOleClientSite_QueryInterface(&
This->IOleClientSite_iface,
riid,
ppv);
1084 return IOleClientSite_AddRef(&
This->IOleClientSite_iface);
1090 return IOleClientSite_Release(&
This->IOleClientSite_iface);
1101 READYSTATE ready_state;
1108 if(ready_state == READYSTATE_COMPLETE && !
This->doc_navigate)
1115 FIXME(
"unimplemented dispid %ld\n", dispID);
1146 This->ready_state = READYSTATE_UNINITIALIZED;
1149 This->travellog.loading_pos = -1;
1161 if(
This->shell_ui_helper)
1162 IShellUIHelper2_Release(
This->shell_ui_helper);
1170 while(
This->travellog.length)
static struct sockaddr_in sa
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static int list_empty(struct list_entry *head)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
HRESULT WINAPI CreateStreamOnHGlobal(HGLOBAL hGlobal, BOOL delete_on_release, IStream **stream)
void DocHost_ClientSite_Release(DocHost *This)
void DocHost_ClientSite_Init(DocHost *This)
void call_sink(ConnectionPoint *This, DISPID dispid, DISPPARAMS *dispparams)
void ConnectionPointContainer_Destroy(ConnectionPointContainer *This)
void ConnectionPointContainer_Init(ConnectionPointContainer *This, IUnknown *impl)
void DocHost_Frame_Init(DocHost *This)
UINT(* handler)(MSIPACKAGE *)
static wchar_t * wcsdup(const wchar_t *str)
HRESULT WINAPI SafeArrayGetElement(SAFEARRAY *psa, LONG *rgIndices, void *pvData)
UINT WINAPI SafeArrayGetDim(SAFEARRAY *psa)
INT WSAAPI send(IN SOCKET s, IN CONST CHAR FAR *buf, IN INT len, IN INT flags)
void set_doc_state(DocHost *This, READYSTATE doc_state)
static HRESULT WINAPI DocHostUIHandler_ShowContextMenu(IDocHostUIHandler2 *iface, DWORD dwID, POINT *ppt, IUnknown *pcmdtReserved, IDispatch *pdispReserved)
static ULONG WINAPI ClOleCommandTarget_AddRef(IOleCommandTarget *iface)
static HRESULT WINAPI DocHostUIHandler_EnableModeless(IDocHostUIHandler2 *iface, BOOL fEnable)
static ATOM doc_view_atom
static HRESULT WINAPI DocHostUIHandler_ShowUI(IDocHostUIHandler2 *iface, DWORD dwID, IOleInPlaceActiveObject *pActiveObject, IOleCommandTarget *pCommandTarget, IOleInPlaceFrame *pFrame, IOleInPlaceUIWindow *pDoc)
static HRESULT WINAPI DocHostUIHandler_HideUI(IDocHostUIHandler2 *iface)
void DocHost_Init(DocHost *This, IWebBrowser2 *wb, const IDocHostContainerVtbl *container)
static void push_ready_state_task(DocHost *This, READYSTATE ready_state)
static void object_available_task_destr(task_header_t *task)
HRESULT refresh_document(DocHost *This, const VARIANT *level)
static HRESULT WINAPI DocHostUIHandler_UpdateUI(IDocHostUIHandler2 *iface)
void activate_document(DocHost *This)
void DocHost_Release(DocHost *This)
static void advise_prop_notif(DocHost *This, BOOL set)
void push_dochost_task(DocHost *This, task_header_t *task, task_proc_t proc, task_destr_t destr, BOOL send)
static HRESULT WINAPI PropertyNotifySink_OnChanged(IPropertyNotifySink *iface, DISPID dispID)
void on_commandstate_change(DocHost *doc_host, LONG command, BOOL enable)
static ULONG WINAPI DocHostUIHandler_Release(IDocHostUIHandler2 *iface)
LRESULT process_dochost_tasks(DocHost *This)
void deactivate_document(DocHost *This)
static DocHost * impl_from_IPropertyNotifySink(IPropertyNotifySink *iface)
static const IPropertyNotifySinkVtbl PropertyNotifySinkVtbl
static const IDocHostUIHandler2Vtbl DocHostUIHandler2Vtbl
static void ready_state_proc(DocHost *This, task_header_t *_task)
static HRESULT WINAPI DocHostUIHandler_ResizeBorder(IDocHostUIHandler2 *iface, LPCRECT prcBorder, IOleInPlaceUIWindow *pUIWindow, BOOL fRameWindow)
#define CMDID_EXPLORER_UPDATEHISTORY
static void update_travellog(DocHost *This)
static ULONG WINAPI PropertyNotifySink_AddRef(IPropertyNotifySink *iface)
static LRESULT WINAPI doc_view_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
static HRESULT WINAPI DocHostUIHandler_TranslateAccelerator(IDocHostUIHandler2 *iface, LPMSG lpMsg, const GUID *pguidCmdGroup, DWORD nCmdID)
static HRESULT WINAPI DocHostUIHandler_GetExternal(IDocHostUIHandler2 *iface, IDispatch **ppDispatch)
static HRESULT WINAPI DocHostUIHandler_FilterDataObject(IDocHostUIHandler2 *iface, IDataObject *pDO, IDataObject **ppDORet)
static HRESULT WINAPI ClOleCommandTarget_QueryStatus(IOleCommandTarget *iface, const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText)
HRESULT dochost_object_available(DocHost *This, IUnknown *doc)
static void ready_state_task_destr(task_header_t *_task)
static void dump_travellog(DocHost *This)
static ULONG WINAPI DocHostUIHandler_AddRef(IDocHostUIHandler2 *iface)
#define DOCHOST_DOCCANNAVIGATE
static HRESULT WINAPI DocHostUIHandler_TranslateUrl(IDocHostUIHandler2 *iface, DWORD dwTranslate, OLECHAR *pchURLIn, OLECHAR **ppchURLOut)
static HRESULT WINAPI PropertyNotifySink_OnRequestEdit(IPropertyNotifySink *iface, DISPID dispID)
static void notif_complete(DocHost *This, DISPID dispid)
static LRESULT resize_document(DocHost *This, LONG width, LONG height)
static ULONG WINAPI ClOleCommandTarget_Release(IOleCommandTarget *iface)
static DocHost * impl_from_IDocHostUIHandler2(IDocHostUIHandler2 *iface)
static DocHost * impl_from_IOleCommandTarget(IOleCommandTarget *iface)
void abort_dochost_tasks(DocHost *This, task_proc_t proc)
static void free_travellog_entry(travellog_entry_t *entry)
static HRESULT WINAPI DocHostUIHandler_OnFrameWindowActivate(IDocHostUIHandler2 *iface, BOOL fActivate)
static HRESULT WINAPI ClOleCommandTarget_Exec(IOleCommandTarget *iface, const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
static ULONG WINAPI PropertyNotifySink_Release(IPropertyNotifySink *iface)
static HRESULT WINAPI DocHostUIHandler_GetOptionKeyPath(IDocHostUIHandler2 *iface, LPOLESTR *pchKey, DWORD dw)
static void object_available(DocHost *This)
static HRESULT WINAPI DocHostUIHandler_GetOverrideKeyPath(IDocHostUIHandler2 *iface, LPOLESTR *pchKey, DWORD dw)
static void object_available_proc(DocHost *This, task_header_t *task)
void create_doc_view_hwnd(DocHost *This)
static HRESULT WINAPI DocHostUIHandler_OnDocWindowActivate(IDocHostUIHandler2 *iface, BOOL fActivate)
static HRESULT WINAPI DocHostUIHandler_QueryInterface(IDocHostUIHandler2 *iface, REFIID riid, void **ppv)
static HRESULT WINAPI PropertyNotifySink_QueryInterface(IPropertyNotifySink *iface, REFIID riid, void **ppv)
static HRESULT WINAPI DocHostUIHandler_GetHostInfo(IDocHostUIHandler2 *iface, DOCHOSTUIINFO *pInfo)
static IStream * get_travellog_stream(DocHost *This)
static const IOleCommandTargetVtbl OleCommandTargetVtbl
void release_dochost_client(DocHost *This)
static HRESULT WINAPI DocHostUIHandler_GetDropTarget(IDocHostUIHandler2 *iface, IDropTarget *pDropTarget, IDropTarget **ppDropTarget)
static void update_ready_state(DocHost *This, READYSTATE ready_state)
void update_navigation_commands(DocHost *dochost)
static HRESULT get_doc_ready_state(DocHost *This, READYSTATE *ret)
static HRESULT WINAPI ClOleCommandTarget_QueryInterface(IOleCommandTarget *iface, REFIID riid, void **ppv)
static const char * debugstr_variant(const VARIANT *var)
#define DISPID_NAVIGATECOMPLETE2
#define DISPID_COMMANDSTATECHANGE
#define DISPID_DOCUMENTCOMPLETE
GLint GLint GLsizei GLsizei height
GLint GLint GLsizei width
GLenum const GLfloat * params
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define DISPID_READYSTATE
void(* task_proc_t)(DocHost *, struct _task_header_t *)
HRESULT create_shell_ui_helper(IShellUIHelper2 **)
HINSTANCE ieframe_instance
void handle_navigation_error(DocHost *, HRESULT, BSTR, IHTMLWindow2 *)
void NewWindowManager_Init(DocHost *)
void IEHTMLWindow_Init(DocHost *)
void notify_download_state(DocHost *, BOOL)
void(* task_destr_t)(struct _task_header_t *)
REFIID LPVOID DWORD_PTR dw
static IOleClientSite * client_site
static VARIANTARG static DISPID
interface IHTMLWindow2 IHTMLWindow2
@ DOCHOSTUIFLAG_DISABLE_HELP_MENU
@ DOCHOSTUIFLAG_URL_ENCODING_ENABLE_UTF8
@ DOCHOSTUIFLAG_OPENNEWWIN
@ DOCHOSTUIFLAG_ENABLE_INPLACE_NAVIGATION
@ DOCHOSTUIFLAG_IME_ENABLE_RECONVERSION
#define LOCALE_SYSTEM_DEFAULT
BSTR WINAPI SysAllocString(LPCOLESTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
#define DISPATCH_PROPERTYGET
const GUID IID_IConnectionPointContainer
const GUID IID_IPropertyNotifySink
const GUID IID_IOleObject
#define IsEqualGUID(rguid1, rguid2)
#define DEFINE_OLEGUID(name, l, w1, w2)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
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 *)
HANDLE WINAPI GetPropW(_In_ HWND, _In_ LPCWSTR)
BOOL WINAPI DestroyWindow(_In_ HWND)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
const IDocHostContainerVtbl * container_vtbl
ConnectionPointContainer cps
struct DocHost::@534 travellog
void(* on_command_state_change)(DocHost *, LONG, BOOL)
#define CONTAINING_RECORD(address, type, field)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)