ReactOS  0.4.14-dev-115-g4576127
client.c
Go to the documentation of this file.
1 /*
2  * Copyright 2005 Jacek Caban for CodeWeavers
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18 
19 #include <stdio.h>
20 
21 #include "ieframe.h"
22 
23 #include "mshtmdid.h"
24 #include "idispids.h"
25 
26 #include "wine/debug.h"
27 
29 
31 {
32  return CONTAINING_RECORD(iface, DocHost, IOleClientSite_iface);
33 }
34 
36 {
38 
40  TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
41  *ppv = &This->IOleClientSite_iface;
42  }else if(IsEqualGUID(&IID_IOleClientSite, riid)) {
43  TRACE("(%p)->(IID_IOleClientSite %p)\n", This, ppv);
44  *ppv = &This->IOleClientSite_iface;
45  }else if(IsEqualGUID(&IID_IOleWindow, riid)) {
46  TRACE("(%p)->(IID_IOleWindow %p)\n", This, ppv);
47  *ppv = &This->IOleInPlaceSiteEx_iface;
48  }else if(IsEqualGUID(&IID_IOleInPlaceSite, riid)) {
49  TRACE("(%p)->(IID_IOleInPlaceSite %p)\n", This, ppv);
50  *ppv = &This->IOleInPlaceSiteEx_iface;
51  }else if(IsEqualGUID(&IID_IOleInPlaceSiteEx, riid)) {
52  TRACE("(%p)->(IID_IOleInPlaceSiteEx %p)\n", This, ppv);
53  *ppv = &This->IOleInPlaceSiteEx_iface;
54  }else if(IsEqualGUID(&IID_IDocHostUIHandler, riid)) {
55  TRACE("(%p)->(IID_IDocHostUIHandler %p)\n", This, ppv);
56  *ppv = &This->IDocHostUIHandler2_iface;
57  }else if(IsEqualGUID(&IID_IDocHostUIHandler2, riid)) {
58  TRACE("(%p)->(IID_IDocHostUIHandler2 %p)\n", This, ppv);
59  *ppv = &This->IDocHostUIHandler2_iface;
60  }else if(IsEqualGUID(&IID_IOleDocumentSite, riid)) {
61  TRACE("(%p)->(IID_IOleDocumentSite %p)\n", This, ppv);
62  *ppv = &This->IOleDocumentSite_iface;
63  }else if(IsEqualGUID(&IID_IOleControlSite, riid)) {
64  TRACE("(%p)->(IID_IOleControlSite %p)\n", This, ppv);
65  *ppv = &This->IOleControlSite_iface;
66  }else if(IsEqualGUID(&IID_IOleCommandTarget, riid)) {
67  TRACE("(%p)->(IID_IOleCommandTarget %p)\n", This, ppv);
68  *ppv = &This->IOleCommandTarget_iface;
69  }else if(IsEqualGUID(&IID_IDispatch, riid)) {
70  TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv);
71  *ppv = &This->IDispatch_iface;
73  TRACE("(%p)->(IID_IPropertyNotifySink %p)\n", This, ppv);
74  *ppv = &This->IPropertyNotifySink_iface;
75  }else if(IsEqualGUID(&IID_IServiceProvider, riid)) {
76  TRACE("(%p)->(IID_IServiceProvider %p)\n", This, ppv);
77  *ppv = &This->IServiceProvider_iface;
78  }else {
79  *ppv = NULL;
80  WARN("Unsupported interface %s\n", debugstr_guid(riid));
81  return E_NOINTERFACE;
82  }
83 
84  IUnknown_AddRef((IUnknown*)*ppv);
85  return S_OK;
86 }
87 
89 {
91  return This->container_vtbl->addref(This);
92 }
93 
95 {
97  return This->container_vtbl->release(This);
98 }
99 
101 {
103  FIXME("(%p)\n", This);
104  return E_NOTIMPL;
105 }
106 
108  DWORD dwWhichMoniker, IMoniker **ppmk)
109 {
111  FIXME("(%p)->(%d %d %p)\n", This, dwAssign, dwWhichMoniker, ppmk);
112  return E_NOTIMPL;
113 }
114 
116 {
118  FIXME("(%p)->(%p)\n", This, ppContainer);
119  return E_NOTIMPL;
120 }
121 
123 {
125  FIXME("(%p)\n", This);
126  return E_NOTIMPL;
127 }
128 
130 {
132  FIXME("(%p)->(%x)\n", This, fShow);
133  return E_NOTIMPL;
134 }
135 
137 {
139  FIXME("(%p)\n", This);
140  return E_NOTIMPL;
141 }
142 
143 static const IOleClientSiteVtbl OleClientSiteVtbl = {
153 };
154 
156 {
157  return CONTAINING_RECORD(iface, DocHost, IOleInPlaceSiteEx_iface);
158 }
159 
161 {
163  return IOleClientSite_QueryInterface(&This->IOleClientSite_iface, riid, ppv);
164 }
165 
167 {
169  return IOleClientSite_AddRef(&This->IOleClientSite_iface);
170 }
171 
173 {
175  return IOleClientSite_Release(&This->IOleClientSite_iface);
176 }
177 
179 {
181 
182  TRACE("(%p)->(%p)\n", This, phwnd);
183 
184  *phwnd = This->hwnd;
185  return S_OK;
186 }
187 
189 {
191  FIXME("(%p)->(%x)\n", This, fEnterMode);
192  return E_NOTIMPL;
193 }
194 
196 {
198 
199  TRACE("(%p)\n", This);
200 
201  /* Nothing to do here */
202  return S_OK;
203 }
204 
206 {
208 
209  TRACE("(%p)\n", This);
210 
211  /* Nothing to do here */
212  return S_OK;
213 }
214 
216 {
218  FIXME("(%p)\n", This);
219  return E_NOTIMPL;
220 }
221 
223  IOleInPlaceFrame **ppFrame, IOleInPlaceUIWindow **ppDoc, LPRECT lprcPosRect,
224  LPRECT lprcClipRect, LPOLEINPLACEFRAMEINFO lpFrameInfo)
225 {
227 
228  TRACE("(%p)->(%p %p %p %p %p)\n", This, ppFrame, ppDoc, lprcPosRect,
229  lprcClipRect, lpFrameInfo);
230 
231  IOleInPlaceFrame_AddRef(&This->IOleInPlaceFrame_iface);
232  *ppFrame = &This->IOleInPlaceFrame_iface;
233  *ppDoc = NULL;
234 
235  GetClientRect(This->hwnd, lprcPosRect);
236  *lprcClipRect = *lprcPosRect;
237 
238  lpFrameInfo->fMDIApp = FALSE;
239  lpFrameInfo->hwndFrame = This->frame_hwnd;
240  lpFrameInfo->haccel = NULL;
241  lpFrameInfo->cAccelEntries = 0; /* FIXME: should be 5 */
242 
243  return S_OK;
244 }
245 
247 {
249  FIXME("(%p)->({%d %d})\n", This, scrollExtent.cx, scrollExtent.cy);
250  return E_NOTIMPL;
251 }
252 
254 {
256  FIXME("(%p)->(%x)\n", This, fUndoable);
257  return E_NOTIMPL;
258 }
259 
261 {
263 
264  TRACE("(%p)\n", This);
265 
266  /* Nothing to do here */
267  return S_OK;
268 }
269 
271 {
273  FIXME("(%p)\n", This);
274  return E_NOTIMPL;
275 }
276 
278 {
280  FIXME("(%p)\n", This);
281  return E_NOTIMPL;
282 }
283 
285  LPCRECT lprcPosRect)
286 {
288  FIXME("(%p)->(%p)\n", This, lprcPosRect);
289  return E_NOTIMPL;
290 }
291 
293  BOOL *pfNoRedraw, DWORD dwFlags)
294 {
296 
297  TRACE("(%p)->(%p, %x)\n", This, pfNoRedraw, dwFlags);
298 
299  /* FIXME: Avoid redraw, when possible */
300  *pfNoRedraw = FALSE;
301 
302  if (dwFlags) {
303  FIXME("dwFlags not supported (%x)\n", dwFlags);
304  }
305 
306  /* Nothing to do here */
307  return S_OK;
308 }
309 
311 {
313 
314  TRACE("(%p)->(%x)\n", This, fNoRedraw);
315 
316  if (fNoRedraw) {
317  FIXME("fNoRedraw (%x) ignored\n", fNoRedraw);
318  }
319 
320  /* Nothing to do here */
321  return S_OK;
322 }
323 
325 {
327  TRACE("(%p)\n", This);
328 
329  /* OnUIActivate is always possible */
330  return S_OK;
331 }
332 
333 static const IOleInPlaceSiteExVtbl OleInPlaceSiteExVtbl = {
349  /* OleInPlaceSiteEx */
353 };
354 
356 {
357  return CONTAINING_RECORD(iface, DocHost, IOleDocumentSite_iface);
358 }
359 
361  REFIID riid, void **ppv)
362 {
364  return IOleClientSite_QueryInterface(&This->IOleClientSite_iface, riid, ppv);
365 }
366 
368 {
370  return IOleClientSite_AddRef(&This->IOleClientSite_iface);
371 }
372 
374 {
376  return IOleClientSite_Release(&This->IOleClientSite_iface);
377 }
378 
380  IOleDocumentView *pViewToActivate)
381 {
383  IOleDocument *oledoc;
384  RECT rect;
385  HRESULT hres;
386 
387  TRACE("(%p)->(%p)\n", This, pViewToActivate);
388 
389  hres = IUnknown_QueryInterface(This->document, &IID_IOleDocument, (void**)&oledoc);
390  if(FAILED(hres))
391  return hres;
392 
393  hres = IOleDocument_CreateView(oledoc, (IOleInPlaceSite*) &This->IOleInPlaceSiteEx_iface, NULL, 0, &This->view);
394  IOleDocument_Release(oledoc);
395  if(FAILED(hres))
396  return hres;
397 
398  GetClientRect(This->hwnd, &rect);
399  IOleDocumentView_SetRect(This->view, &rect);
400 
401  hres = IOleDocumentView_Show(This->view, TRUE);
402 
403  return hres;
404 }
405 
406 static const IOleDocumentSiteVtbl OleDocumentSiteVtbl = {
411 };
412 
414 {
415  return CONTAINING_RECORD(iface, DocHost, IOleControlSite_iface);
416 }
417 
419 {
421  return IOleClientSite_QueryInterface(&This->IOleClientSite_iface, riid, ppv);
422 }
423 
425 {
427  return IOleClientSite_AddRef(&This->IOleClientSite_iface);
428 }
429 
431 {
433  return IOleClientSite_Release(&This->IOleClientSite_iface);
434 }
435 
437 {
439  FIXME("(%p)\n", This);
440  return E_NOTIMPL;
441 }
442 
444 {
446  FIXME("(%p)->(%d)\n", This, fLock);
447  return E_NOTIMPL;
448 }
449 
451 {
453  FIXME("(%p)->(%p)\n", This, ppDisp);
454  return E_NOTIMPL;
455 }
456 
458  POINTF *pPtfContainer, DWORD dwFlags)
459 {
461  FIXME("(%p)->(%p, %p, %08x)\n", This, pPtlHimetric, pPtfContainer, dwFlags);
462  return E_NOTIMPL;
463 }
464 
466  DWORD grfModifiers)
467 {
469  IOleObject *wb_obj;
470  IOleClientSite *clientsite;
471  IOleControlSite *controlsite;
472  HRESULT hr;
473 
474  TRACE("(%p)->(%p, %08x)\n", This, pMsg, grfModifiers);
475 
476  hr = IWebBrowser2_QueryInterface(This->wb, &IID_IOleObject, (void**)&wb_obj);
477  if(SUCCEEDED(hr)) {
478  hr = IOleObject_GetClientSite(wb_obj, &clientsite);
479  if(SUCCEEDED(hr)) {
480  hr = IOleClientSite_QueryInterface(clientsite, &IID_IOleControlSite, (void**)&controlsite);
481  if(SUCCEEDED(hr)) {
482  hr = IOleControlSite_TranslateAccelerator(controlsite, pMsg, grfModifiers);
483  IOleControlSite_Release(controlsite);
484  }
485  IOleClientSite_Release(clientsite);
486  }
487  IOleObject_Release(wb_obj);
488  }
489 
490  if(FAILED(hr))
491  return S_FALSE;
492  else
493  return hr;
494 }
495 
497 {
499  FIXME("(%p)->(%d)\n", This, fGotFocus);
500  return E_NOTIMPL;
501 }
502 
504 {
506  FIXME("(%p)\n", This);
507  return E_NOTIMPL;
508 }
509 
510 static IOleControlSiteVtbl OleControlSiteVtbl = {
521 };
522 
523 static inline DocHost *impl_from_IDispatch(IDispatch *iface)
524 {
525  return CONTAINING_RECORD(iface, DocHost, IDispatch_iface);
526 }
527 
529 {
530  DocHost *This = impl_from_IDispatch(iface);
531  return IOleClientSite_QueryInterface(&This->IOleClientSite_iface, riid, ppv);
532 }
533 
535 {
536  DocHost *This = impl_from_IDispatch(iface);
537  return IOleClientSite_AddRef(&This->IOleClientSite_iface);
538 }
539 
541 {
542  DocHost *This = impl_from_IDispatch(iface);
543  return IOleClientSite_Release(&This->IOleClientSite_iface);
544 }
545 
547 {
548  DocHost *This = impl_from_IDispatch(iface);
549 
550  TRACE("(%p)->(%p)\n", This, pctinfo);
551 
552  return E_NOTIMPL;
553 }
554 
556  ITypeInfo **ppTInfo)
557 {
558  DocHost *This = impl_from_IDispatch(iface);
559 
560  TRACE("(%p)->(%u %d %p)\n", This, iTInfo, lcid, ppTInfo);
561 
562  return E_NOTIMPL;
563 }
564 
566  UINT cNames, LCID lcid, DISPID *rgDispId)
567 {
568  DocHost *This = impl_from_IDispatch(iface);
569 
570  TRACE("(%p)->(%s %p %u %d %p)\n", This, debugstr_guid(riid), rgszNames, cNames,
571  lcid, rgDispId);
572 
573  return E_NOTIMPL;
574 }
575 
576 static const char *debugstr_dispid(DISPID dispid)
577 {
578  static char buf[16];
579 
580 #define CASE_DISPID(did) case did: return #did
581  switch(dispid) {
588  }
589 #undef CASE_DISPID
590 
591  sprintf(buf, "%d", dispid);
592  return buf;
593 }
594 
596  LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
597  VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
598 {
599  DocHost *This = impl_from_IDispatch(iface);
600 
601  TRACE("(%p)->(%s %s %d %04x %p %p %p %p)\n", This, debugstr_dispid(dispIdMember),
602  debugstr_guid(riid), lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
603 
604  switch(dispIdMember) {
609  if(!This->client_disp)
610  return E_FAIL;
611  return IDispatch_Invoke(This->client_disp, dispIdMember, riid, lcid, wFlags,
612  pDispParams, pVarResult, pExcepInfo, puArgErr);
614  V_VT(pVarResult) = VT_BOOL;
615  V_BOOL(pVarResult) = This->offline;
616  return S_OK;
618  V_VT(pVarResult) = VT_BOOL;
619  V_BOOL(pVarResult) = This->offline;
620  return S_OK;
621  }
622 
623  FIXME("unhandled dispid %d\n", dispIdMember);
624  return E_NOTIMPL;
625 }
626 
627 static const IDispatchVtbl DispatchVtbl = {
635 };
636 
638 {
639  return CONTAINING_RECORD(iface, DocHost, IServiceProvider_iface);
640 }
641 
643  void **ppv)
644 {
646  return IOleClientSite_QueryInterface(&This->IOleClientSite_iface, riid, ppv);
647 }
648 
650 {
652  return IOleClientSite_AddRef(&This->IOleClientSite_iface);
653 }
654 
656 {
658  return IOleClientSite_Release(&This->IOleClientSite_iface);
659 }
660 
662  REFIID riid, void **ppv)
663 {
665 
666  if(IsEqualGUID(&IID_IHlinkFrame, guidService)) {
667  TRACE("(%p)->(IID_IHlinkFrame %s %p)\n", This, debugstr_guid(riid), ppv);
668  return IWebBrowser2_QueryInterface(This->wb, riid, ppv);
669  }
670 
671  if(IsEqualGUID(&IID_ITargetFrame, guidService)) {
672  TRACE("(%p)->(IID_ITargetFrame %s %p)\n", This, debugstr_guid(riid), ppv);
673  return IWebBrowser2_QueryInterface(This->wb, riid, ppv);
674  }
675 
676  if(IsEqualGUID(&IID_IWebBrowserApp, guidService)) {
677  TRACE("IWebBrowserApp service\n");
678  return IWebBrowser2_QueryInterface(This->wb, riid, ppv);
679  }
680 
681  if(IsEqualGUID(&IID_IShellBrowser, guidService)) {
682  TRACE("(%p)->(IID_IShellBrowser %s %p)\n", This, debugstr_guid(riid), ppv);
683 
684  if(!This->browser_service) {
685  HRESULT hres;
686 
687  hres = create_browser_service(This, &This->browser_service);
688  if(FAILED(hres))
689  return hres;
690  }
691 
692  return IShellBrowser_QueryInterface(&This->browser_service->IShellBrowser_iface, riid, ppv);
693  }
694 
695  if(IsEqualGUID(&SID_SNewWindowManager, guidService)) {
696  TRACE("SID_SNewWindowManager service\n");
697  return INewWindowManager_QueryInterface(&This->nwm.INewWindowManager_iface, riid, ppv);
698  }
699 
700  FIXME("(%p)->(%s %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv);
701 
702  return E_NOINTERFACE;
703 }
704 
705 static const IServiceProviderVtbl ServiceProviderVtbl = {
710 };
711 
713 {
714  This->IOleClientSite_iface.lpVtbl = &OleClientSiteVtbl;
715  This->IOleInPlaceSiteEx_iface.lpVtbl = &OleInPlaceSiteExVtbl;
716  This->IOleDocumentSite_iface.lpVtbl = &OleDocumentSiteVtbl;
717  This->IOleControlSite_iface.lpVtbl = &OleControlSiteVtbl;
718  This->IDispatch_iface.lpVtbl = &DispatchVtbl;
719  This->IServiceProvider_iface.lpVtbl = &ServiceProviderVtbl;
720 }
721 
723 {
724  if(This->browser_service)
725  detach_browser_service(This->browser_service);
726  if(This->view)
727  IOleDocumentView_Release(This->view);
728 }
static HRESULT WINAPI ControlSite_GetExtendedControl(IOleControlSite *iface, IDispatch **ppDisp)
Definition: client.c:450
static const IOleDocumentSiteVtbl OleDocumentSiteVtbl
Definition: client.c:406
static HRESULT WINAPI ClServiceProvider_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv)
Definition: client.c:661
#define REFIID
Definition: guiddef.h:118
#define TRUE
Definition: types.h:120
#define DISPID_AMBIENT_SILENT
Definition: idispids.h:26
#define E_NOINTERFACE
Definition: winerror.h:2364
static ULONG WINAPI OleDocumentSite_AddRef(IOleDocumentSite *iface)
Definition: client.c:367
static HRESULT WINAPI ControlSite_OnControlInfoChanged(IOleControlSite *iface)
Definition: client.c:436
HRESULT hr
Definition: shlfolder.c:183
static HRESULT WINAPI InPlaceSite_OnInPlaceActivate(IOleInPlaceSiteEx *iface)
Definition: client.c:205
WINE_DEFAULT_DEBUG_CHANNEL(ieframe)
Definition: scsiwmi.h:51
static HRESULT WINAPI ControlSite_TranslateAccelerator(IOleControlSite *iface, MSG *pMsg, DWORD grfModifiers)
Definition: client.c:465
static ULONG WINAPI ClDispatch_Release(IDispatch *iface)
Definition: client.c:540
void DocHost_ClientSite_Init(DocHost *This)
Definition: client.c:712
static HRESULT WINAPI InPlaceSite_CanInPlaceActivate(IOleInPlaceSiteEx *iface)
Definition: client.c:195
static ULONG WINAPI OleDocumentSite_Release(IOleDocumentSite *iface)
Definition: client.c:373
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
REFIID riid
Definition: precomp.h:44
const GUID IID_IOleInPlaceSite
const GUID IID_IOleClientSite
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1827
static HRESULT WINAPI InPlaceSite_QueryInterface(IOleInPlaceSiteEx *iface, REFIID riid, void **ppv)
Definition: client.c:160
#define WARN(fmt,...)
Definition: debug.h:111
static DocHost * impl_from_IOleControlSite(IOleControlSite *iface)
Definition: client.c:413
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define DISPID_AMBIENT_USERMODE
Definition: olectl.h:405
static const IOleClientSiteVtbl OleClientSiteVtbl
Definition: client.c:143
static HRESULT WINAPI ClientSite_QueryInterface(IOleClientSite *iface, REFIID riid, void **ppv)
Definition: client.c:35
DWORD LCID
Definition: nls.h:13
static ULONG WINAPI ClServiceProvider_AddRef(IServiceProvider *iface)
Definition: client.c:649
static LPOLESTR
Definition: stg_prop.c:27
#define E_FAIL
Definition: ddrawi.h:102
static ULONG WINAPI ClServiceProvider_Release(IServiceProvider *iface)
Definition: client.c:655
static HRESULT WINAPI InPlaceSite_OnInPlaceDeactivate(IOleInPlaceSiteEx *iface)
Definition: client.c:260
#define DISPID_AMBIENT_OFFLINEIFNOTCONNECTED
Definition: idispids.h:25
& rect
Definition: startmenu.cpp:1413
static HRESULT WINAPI ClientSite_GetMoniker(IOleClientSite *iface, DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk)
Definition: client.c:107
#define sprintf(buf, format,...)
Definition: sprintf.c:55
static HRESULT WINAPI ControlSite_TransformCoords(IOleControlSite *iface, POINTL *pPtlHimetric, POINTF *pPtfContainer, DWORD dwFlags)
Definition: client.c:457
unsigned int BOOL
Definition: ntddk_ex.h:94
const GUID IID_IOleControlSite
static const IServiceProviderVtbl ServiceProviderVtbl
Definition: client.c:705
static HRESULT WINAPI InPlaceSite_Scroll(IOleInPlaceSiteEx *iface, SIZE scrollExtent)
Definition: client.c:246
static HRESULT WINAPI ClDispatch_Invoke(IDispatch *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
Definition: client.c:595
#define FIXME(fmt,...)
Definition: debug.h:110
static DocHost * impl_from_IOleDocumentSite(IOleDocumentSite *iface)
Definition: client.c:355
#define S_FALSE
Definition: winerror.h:2357
static ULONG WINAPI ControlSite_Release(IOleControlSite *iface)
Definition: client.c:430
static HRESULT WINAPI ControlSite_ShowPropertyFrame(IOleControlSite *iface)
Definition: client.c:503
static HRESULT WINAPI InPlaceSite_OnPosRectChange(IOleInPlaceSiteEx *iface, LPCRECT lprcPosRect)
Definition: client.c:284
static HRESULT WINAPI InPlaceSite_GetWindow(IOleInPlaceSiteEx *iface, HWND *phwnd)
Definition: client.c:178
smooth NULL
Definition: ftsmooth.c:416
LONG cx
Definition: windef.h:319
static HRESULT WINAPI ControlSite_LockInPlaceActive(IOleControlSite *iface, BOOL fLock)
Definition: client.c:443
static HRESULT WINAPI ClServiceProvider_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv)
Definition: client.c:642
#define debugstr_guid
Definition: kernel32.h:35
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
Definition: Messaging.c:560
static HRESULT WINAPI ClDispatch_GetIDsOfNames(IDispatch *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: client.c:565
static HRESULT WINAPI OleDocumentSite_QueryInterface(IOleDocumentSite *iface, REFIID riid, void **ppv)
Definition: client.c:360
static HRESULT WINAPI InPlaceSite_ContextSensitiveHelp(IOleInPlaceSiteEx *iface, BOOL fEnterMode)
Definition: client.c:188
static HRESULT WINAPI ClientSite_SaveObject(IOleClientSite *iface)
Definition: client.c:100
const GUID IID_IOleObject
static ULONG WINAPI ClientSite_AddRef(IOleClientSite *iface)
Definition: client.c:88
#define CASE_DISPID(did)
static HRESULT WINAPI ClDispatch_GetTypeInfoCount(IDispatch *iface, UINT *pctinfo)
Definition: client.c:546
#define TRACE(s)
Definition: solgame.cpp:4
static HRESULT WINAPI ClientSite_ShowObject(IOleClientSite *iface)
Definition: client.c:122
HRESULT hres
Definition: protocol.c:465
static DocHost * impl_from_IOleInPlaceSiteEx(IOleInPlaceSiteEx *iface)
Definition: client.c:155
LONG HRESULT
Definition: typedefs.h:77
HRESULT create_browser_service(DocHost *, ShellBrowser **) DECLSPEC_HIDDEN
Definition: shellbrowser.c:924
static DocHost * impl_from_IServiceProvider(IServiceProvider *iface)
Definition: client.c:637
const GUID IID_IUnknown
#define WINAPI
Definition: msvc.h:8
static DocHost * impl_from_IOleClientSite(IOleClientSite *iface)
Definition: client.c:30
#define V_BOOL(A)
Definition: oleauto.h:224
unsigned short WORD
Definition: ntddk_ex.h:93
unsigned long DWORD
Definition: ntddk_ex.h:95
static HRESULT WINAPI ControlSite_QueryInterface(IOleControlSite *iface, REFIID riid, void **ppv)
Definition: client.c:418
#define DISPID_AMBIENT_USERAGENT
Definition: mshtmdid.h:540
static HRESULT WINAPI InPlaceSite_OnInPlaceDeactivateEx(IOleInPlaceSiteEx *iface, BOOL fNoRedraw)
Definition: client.c:310
static IOleControlSiteVtbl OleControlSiteVtbl
Definition: client.c:510
#define DISPID_AMBIENT_DLCONTROL
Definition: mshtmdid.h:539
const GUID IID_IDispatch
static HRESULT WINAPI ClDispatch_QueryInterface(IDispatch *iface, REFIID riid, void **ppv)
Definition: client.c:528
void detach_browser_service(ShellBrowser *) DECLSPEC_HIDDEN
Definition: shellbrowser.c:943
static HRESULT WINAPI ClientSite_OnShowWindow(IOleClientSite *iface, BOOL fShow)
Definition: client.c:129
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1175
#define V_VT(A)
Definition: oleauto.h:211
static ULONG WINAPI ControlSite_AddRef(IOleControlSite *iface)
Definition: client.c:424
static const char * debugstr_dispid(DISPID dispid)
Definition: client.c:576
static HRESULT WINAPI InPlaceSite_OnUIDeactivate(IOleInPlaceSiteEx *iface, BOOL fUndoable)
Definition: client.c:253
static HRESULT WINAPI ClDispatch_GetTypeInfo(IDispatch *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: client.c:555
_In_ DWORD _Out_ _In_ WORD wFlags
Definition: wincon.h:519
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
struct stdole::EXCEPINFO EXCEPINFO
static VARIANTARG static DISPID
Definition: ordinal.c:49
#define S_OK
Definition: intsafe.h:59
#define DISPID_AMBIENT_PALETTE
Definition: olectl.h:415
static HRESULT WINAPI ControlSite_OnFocus(IOleControlSite *iface, BOOL fGotFocus)
Definition: client.c:496
static HRESULT WINAPI ClientSite_GetContainer(IOleClientSite *iface, IOleContainer **ppContainer)
Definition: client.c:115
static ULONG WINAPI ClientSite_Release(IOleClientSite *iface)
Definition: client.c:94
#define E_NOTIMPL
Definition: ddrawi.h:99
const GUID IID_IPropertyNotifySink
unsigned int UINT
Definition: ndis.h:50
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4021
static HRESULT WINAPI InPlaceSite_OnUIActivate(IOleInPlaceSiteEx *iface)
Definition: client.c:215
static const IOleInPlaceSiteExVtbl OleInPlaceSiteExVtbl
Definition: client.c:333
static HRESULT WINAPI ClientSite_RequestNewObjectLayout(IOleClientSite *iface)
Definition: client.c:136
static HRESULT WINAPI OleDocumentSite_ActivateMe(IOleDocumentSite *iface, IOleDocumentView *pViewToActivate)
Definition: client.c:379
static ULONG WINAPI InPlaceSite_Release(IOleInPlaceSiteEx *iface)
Definition: client.c:172
struct stdole::DISPPARAMS DISPPARAMS
const GUID IID_IOleWindow
unsigned int ULONG
Definition: retypes.h:1
static ULONG WINAPI ClDispatch_AddRef(IDispatch *iface)
Definition: client.c:534
static HRESULT WINAPI InPlaceSite_OnInPlaceActivateEx(IOleInPlaceSiteEx *iface, BOOL *pfNoRedraw, DWORD dwFlags)
Definition: client.c:292
static HRESULT WINAPI InPlaceSite_RequestUIActivate(IOleInPlaceSiteEx *iface)
Definition: client.c:324
static const IDispatchVtbl DispatchVtbl
Definition: client.c:627
static HRESULT WINAPI InPlaceSite_GetWindowContext(IOleInPlaceSiteEx *iface, IOleInPlaceFrame **ppFrame, IOleInPlaceUIWindow **ppDoc, LPRECT lprcPosRect, LPRECT lprcClipRect, LPOLEINPLACEFRAMEINFO lpFrameInfo)
Definition: client.c:222
static HRESULT WINAPI InPlaceSite_DeactivateAndUndo(IOleInPlaceSiteEx *iface)
Definition: client.c:277
LONG cy
Definition: windef.h:320
void DocHost_ClientSite_Release(DocHost *This)
Definition: client.c:722
static ULONG WINAPI InPlaceSite_AddRef(IOleInPlaceSiteEx *iface)
Definition: client.c:166
static HRESULT WINAPI InPlaceSite_DiscardUndoState(IOleInPlaceSiteEx *iface)
Definition: client.c:270
#define SUCCEEDED(hr)
Definition: intsafe.h:57
static DocHost * impl_from_IDispatch(IDispatch *iface)
Definition: client.c:523