Andrey Turkin : atl: Host component implementation: IOleControlSite.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Nov 13 09:24:25 CST 2006


Module: wine
Branch: master
Commit: 26e6c13c43c28e09711e00cfb42b7af88fe82cb8
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=26e6c13c43c28e09711e00cfb42b7af88fe82cb8

Author: Andrey Turkin <pancha at mail.nnov.ru>
Date:   Sat Nov 11 00:02:59 2006 +0300

atl: Host component implementation: IOleControlSite.

---

 dlls/atl/atl_ax.c |   74 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 74 insertions(+), 0 deletions(-)

diff --git a/dlls/atl/atl_ax.c b/dlls/atl/atl_ax.c
index 47c5778..2f7b1a3 100644
--- a/dlls/atl/atl_ax.c
+++ b/dlls/atl/atl_ax.c
@@ -46,6 +46,7 @@ typedef struct IOCS {
     const IOleContainerVtbl *lpOleContainerVtbl;
     const IOleInPlaceSiteWindowlessVtbl *lpOleInPlaceSiteWindowlessVtbl;
     const IOleInPlaceFrameVtbl *lpOleInPlaceFrameVtbl;
+    const IOleControlSiteVtbl *lpOleControlSiteVtbl;
 
     LONG ref;
     HWND hWnd;
@@ -130,6 +131,7 @@ #define THIS2IOLECLIENTSITE(This) ((IOle
 #define THIS2IOLECONTAINER(This) ((IOleContainer*)&This->lpOleContainerVtbl)
 #define THIS2IOLEINPLACESITEWINDOWLESS(This) ((IOleInPlaceSiteWindowless*)&This->lpOleInPlaceSiteWindowlessVtbl)
 #define THIS2IOLEINPLACEFRAME(This) ((IOleInPlaceFrame*)&This->lpOleInPlaceFrameVtbl)
+#define THIS2IOLECONTROLSITE(This) ((IOleControlSite*)&This->lpOleControlSiteVtbl)
 
 static HRESULT WINAPI IOCS_QueryInterface(IOCS *This, REFIID riid, void **ppv)
 {
@@ -148,6 +150,9 @@ static HRESULT WINAPI IOCS_QueryInterfac
     } else if ( IsEqualIID( &IID_IOleInPlaceFrame, riid ) )
     {
         *ppv = THIS2IOLEINPLACEFRAME(This);
+    } else if ( IsEqualIID( &IID_IOleControlSite, riid ) )
+    {
+        *ppv = THIS2IOLECONTROLSITE(This);
     }
 
     if (*ppv)
@@ -604,6 +609,61 @@ static HRESULT WINAPI OleInPlaceFrame_Tr
 #undef IFACE2THIS
 
 
+/******    IOleControlSite    *******/
+#define IFACE2THIS(iface) DEFINE_THIS(IOCS, OleControlSite, iface)
+static HRESULT WINAPI OleControlSite_QueryInterface(IOleControlSite *iface, REFIID riid, void **ppv)
+{
+    IOCS *This = IFACE2THIS(iface);
+    return IOCS_QueryInterface(This, riid, ppv);
+}
+static ULONG WINAPI OleControlSite_AddRef(IOleControlSite *iface)
+{
+    IOCS *This = IFACE2THIS(iface);
+    return IOCS_AddRef(This);
+}
+static ULONG WINAPI OleControlSite_Release(IOleControlSite *iface)
+{
+    IOCS *This = IFACE2THIS(iface);
+    return IOCS_Release(This);
+}
+static HRESULT WINAPI OleControlSite_OnControlInfoChanged( IOleControlSite* This)
+{
+    FIXME( "\n" );
+    return E_NOTIMPL;
+}
+static HRESULT WINAPI OleControlSite_LockInPlaceActive( IOleControlSite* This, BOOL fLock)
+{
+    FIXME( "\n" );
+    return E_NOTIMPL;
+}
+static HRESULT WINAPI OleControlSite_GetExtendedControl( IOleControlSite* This, IDispatch** ppDisp)
+{
+    FIXME( "\n" );
+    return E_NOTIMPL;
+}
+static HRESULT WINAPI OleControlSite_TransformCoords( IOleControlSite* This, POINTL* pPtlHimetric, POINTF* pPtfContainer, DWORD dwFlags)
+{
+    FIXME( "\n" );
+    return E_NOTIMPL;
+}
+static HRESULT WINAPI OleControlSite_TranslateAccelerator( IOleControlSite* This, MSG* pMsg, DWORD grfModifiers)
+{
+    FIXME( "\n" );
+    return E_NOTIMPL;
+}
+static HRESULT WINAPI OleControlSite_OnFocus( IOleControlSite* This, BOOL fGotFocus)
+{
+    FIXME( "\n" );
+    return E_NOTIMPL;
+}
+static HRESULT WINAPI OleControlSite_ShowPropertyFrame( IOleControlSite* This)
+{
+    FIXME( "\n" );
+    return E_NOTIMPL;
+}
+#undef IFACE2THIS
+
+
 
 static const IOleClientSiteVtbl OleClientSite_vtbl = {
     OleClientSite_QueryInterface,
@@ -674,6 +734,19 @@ static const IOleInPlaceFrameVtbl OleInP
     OleInPlaceFrame_EnableModeless,
     OleInPlaceFrame_TranslateAccelerator
 };
+static const IOleControlSiteVtbl OleControlSite_vtbl =
+{
+    OleControlSite_QueryInterface,
+    OleControlSite_AddRef,
+    OleControlSite_Release,
+    OleControlSite_OnControlInfoChanged,
+    OleControlSite_LockInPlaceActive,
+    OleControlSite_GetExtendedControl,
+    OleControlSite_TransformCoords,
+    OleControlSite_TranslateAccelerator,
+    OleControlSite_OnFocus,
+    OleControlSite_ShowPropertyFrame
+};
 
 static HRESULT IOCS_Detach( IOCS *This ) /* remove subclassing */
 {
@@ -828,6 +901,7 @@ static HRESULT IOCS_Create( HWND hWnd, I
     This->lpOleContainerVtbl = &OleContainer_vtbl;
     This->lpOleInPlaceSiteWindowlessVtbl = &OleInPlaceSiteWindowless_vtbl;
     This->lpOleInPlaceFrameVtbl = &OleInPlaceFrame_vtbl;
+    This->lpOleControlSiteVtbl = &OleControlSite_vtbl;
     This->ref = 1;
 
     This->OrigWndProc = NULL;




More information about the wine-cvs mailing list