[PATCH 05/11] dhtmled.ocx: Add IOleInPlaceActiveObject stub interface.

Vijay Kiran Kamuju infyquest at gmail.com
Wed Apr 7 05:11:16 CDT 2021


Signed-off-by: Vijay Kiran Kamuju <infyquest at gmail.com>
---
 dlls/dhtmled.ocx/edit.c | 96 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 96 insertions(+)

diff --git a/dlls/dhtmled.ocx/edit.c b/dlls/dhtmled.ocx/edit.c
index 7554aacbf8f..7a06588d46a 100644
--- a/dlls/dhtmled.ocx/edit.c
+++ b/dlls/dhtmled.ocx/edit.c
@@ -34,6 +34,7 @@ typedef struct
     IOleControl IOleControl_iface;
     IViewObjectEx IViewObjectEx_iface;
     IOleInPlaceObjectWindowless IOleInPlaceObjectWindowless_iface;
+    IOleInPlaceActiveObject IOleInPlaceActiveObject_iface;
     IConnectionPointContainer IConnectionPointContainer_iface;
     IOleClientSite *client_site;
     SIZEL extent;
@@ -75,6 +76,11 @@ static inline DHTMLEditImpl *impl_from_IOleInPlaceObjectWindowless(IOleInPlaceOb
     return CONTAINING_RECORD(iface, DHTMLEditImpl, IOleInPlaceObjectWindowless_iface);
 }
 
+static inline DHTMLEditImpl *impl_from_IOleInPlaceActiveObject(IOleInPlaceActiveObject *iface)
+{
+    return CONTAINING_RECORD(iface, DHTMLEditImpl, IOleInPlaceActiveObject_iface);
+}
+
 static inline DHTMLEditImpl *impl_from_IConnectionPointContainer(IConnectionPointContainer *iface)
 {
     return CONTAINING_RECORD(iface, DHTMLEditImpl, IConnectionPointContainer_iface);
@@ -142,6 +148,12 @@ static HRESULT dhtml_edit_qi(DHTMLEditImpl *This, REFIID iid, void **out)
         *out = &This->IOleInPlaceObjectWindowless_iface;
         return S_OK;
     }
+    else if(IsEqualGUID(iid, &IID_IOleInPlaceActiveObject))
+    {
+        dhtml_edit_addref(This);
+        *out = &This->IOleInPlaceActiveObject_iface;
+        return S_OK;
+    }
     else if(IsEqualGUID(iid, &IID_IConnectionPointContainer))
     {
         dhtml_edit_addref(This);
@@ -1254,6 +1266,89 @@ static const IOleInPlaceObjectWindowlessVtbl OleInPlaceObjectWindowlessVtbl = {
     OleInPlaceObjectWindowless_GetDropTarget
 };
 
+static HRESULT WINAPI InPlaceActiveObject_QueryInterface(IOleInPlaceActiveObject *iface,
+        REFIID iid, LPVOID *out)
+{
+    return dhtml_edit_qi(impl_from_IOleInPlaceActiveObject(iface), iid, out);
+}
+
+static ULONG WINAPI InPlaceActiveObject_AddRef(IOleInPlaceActiveObject *iface)
+{
+    return dhtml_edit_addref(impl_from_IOleInPlaceActiveObject(iface));
+}
+
+static ULONG WINAPI InPlaceActiveObject_Release(IOleInPlaceActiveObject *iface)
+{
+    return dhtml_edit_release(impl_from_IOleInPlaceActiveObject(iface));
+}
+
+static HRESULT WINAPI InPlaceActiveObject_GetWindow(IOleInPlaceActiveObject *iface,
+        HWND *phwnd)
+{
+    DHTMLEditImpl *This = impl_from_IOleInPlaceActiveObject(iface);
+    return IOleInPlaceObjectWindowless_GetWindow(&This->IOleInPlaceObjectWindowless_iface, phwnd);
+}
+
+static HRESULT WINAPI InPlaceActiveObject_ContextSensitiveHelp(IOleInPlaceActiveObject *iface,
+        BOOL fEnterMode)
+{
+    DHTMLEditImpl *This = impl_from_IOleInPlaceActiveObject(iface);
+    return IOleInPlaceObjectWindowless_ContextSensitiveHelp(&This->IOleInPlaceObjectWindowless_iface, fEnterMode);
+}
+
+static HRESULT WINAPI InPlaceActiveObject_TranslateAccelerator(IOleInPlaceActiveObject *iface,
+        LPMSG lpmsg)
+{
+    DHTMLEditImpl *This = impl_from_IOleInPlaceActiveObject(iface);
+    FIXME("(%p)->(%p)\n", This, lpmsg);
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InPlaceActiveObject_OnFrameWindowActivate(IOleInPlaceActiveObject *iface,
+        BOOL fActivate)
+{
+    DHTMLEditImpl *This = impl_from_IOleInPlaceActiveObject(iface);
+    FIXME("(%p)->(%x)\n", This, fActivate);
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InPlaceActiveObject_OnDocWindowActivate(IOleInPlaceActiveObject *iface,
+        BOOL fActivate)
+{
+    DHTMLEditImpl *This = impl_from_IOleInPlaceActiveObject(iface);
+    FIXME("(%p)->(%x)\n", This, fActivate);
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InPlaceActiveObject_ResizeBorder(IOleInPlaceActiveObject *iface,
+        LPCRECT lprcBorder, IOleInPlaceUIWindow *pUIWindow, BOOL fFrameWindow)
+{
+    DHTMLEditImpl *This = impl_from_IOleInPlaceActiveObject(iface);
+    FIXME("(%p)->(%p %p %x)\n", This, lprcBorder, pUIWindow, fFrameWindow);
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InPlaceActiveObject_EnableModeless(IOleInPlaceActiveObject *iface,
+        BOOL fEnable)
+{
+    DHTMLEditImpl *This = impl_from_IOleInPlaceActiveObject(iface);
+    FIXME("(%p)->(%x)\n", This, fEnable);
+    return E_NOTIMPL;
+}
+
+static const IOleInPlaceActiveObjectVtbl OleInPlaceActiveObjectVtbl = {
+    InPlaceActiveObject_QueryInterface,
+    InPlaceActiveObject_AddRef,
+    InPlaceActiveObject_Release,
+    InPlaceActiveObject_GetWindow,
+    InPlaceActiveObject_ContextSensitiveHelp,
+    InPlaceActiveObject_TranslateAccelerator,
+    InPlaceActiveObject_OnFrameWindowActivate,
+    InPlaceActiveObject_OnDocWindowActivate,
+    InPlaceActiveObject_ResizeBorder,
+    InPlaceActiveObject_EnableModeless
+};
+
 static HRESULT WINAPI ConnectionPointContainer_QueryInterface(IConnectionPointContainer *iface,
         REFIID iid, LPVOID *out)
 {
@@ -1315,6 +1410,7 @@ HRESULT dhtml_edit_create(REFIID iid, void **out)
     This->IOleControl_iface.lpVtbl = &OleControlVtbl;
     This->IViewObjectEx_iface.lpVtbl = &ViewObjectExVtbl;
     This->IOleInPlaceObjectWindowless_iface.lpVtbl = &OleInPlaceObjectWindowlessVtbl;
+    This->IOleInPlaceActiveObject_iface.lpVtbl = &OleInPlaceActiveObjectVtbl;
     This->IConnectionPointContainer_iface.lpVtbl = &ConnectionPointContainerVtbl;
     This->client_site = NULL;
     This->ref = 1;
-- 
2.31.1




More information about the wine-devel mailing list