dhtmled.ocx: Add stub IOleControl interface.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50916
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Vijay Kiran Kamuju 2021-04-03 20:39:49 +02:00 committed by Alexandre Julliard
parent aa20f3c084
commit 95538bb5d3
1 changed files with 66 additions and 0 deletions

View File

@ -30,6 +30,7 @@ typedef struct
IDHTMLEdit IDHTMLEdit_iface; IDHTMLEdit IDHTMLEdit_iface;
IOleObject IOleObject_iface; IOleObject IOleObject_iface;
IPersistStreamInit IPersistStreamInit_iface; IPersistStreamInit IPersistStreamInit_iface;
IOleControl IOleControl_iface;
IOleClientSite *client_site; IOleClientSite *client_site;
SIZEL extent; SIZEL extent;
LONG ref; LONG ref;
@ -50,6 +51,11 @@ static inline DHTMLEditImpl *impl_from_IPersistStreamInit(IPersistStreamInit *if
return CONTAINING_RECORD(iface, DHTMLEditImpl, IPersistStreamInit_iface); return CONTAINING_RECORD(iface, DHTMLEditImpl, IPersistStreamInit_iface);
} }
static inline DHTMLEditImpl *impl_from_IOleControl(IOleControl *iface)
{
return CONTAINING_RECORD(iface, DHTMLEditImpl, IOleControl_iface);
}
static ULONG dhtml_edit_addref(DHTMLEditImpl *This) static ULONG dhtml_edit_addref(DHTMLEditImpl *This)
{ {
LONG ref = InterlockedIncrement(&This->ref); LONG ref = InterlockedIncrement(&This->ref);
@ -83,6 +89,12 @@ static HRESULT dhtml_edit_qi(DHTMLEditImpl *This, REFIID iid, void **out)
*out = &This->IPersistStreamInit_iface; *out = &This->IPersistStreamInit_iface;
return S_OK; return S_OK;
} }
else if(IsEqualGUID(iid, &IID_IOleControl))
{
dhtml_edit_addref(This);
*out = &This->IOleControl_iface;
return S_OK;
}
*out = NULL; *out = NULL;
ERR("no interface for %s\n", debugstr_guid(iid)); ERR("no interface for %s\n", debugstr_guid(iid));
@ -858,6 +870,59 @@ static const IPersistStreamInitVtbl PersistStreamInitVtbl = {
PersistStreamInit_InitNew PersistStreamInit_InitNew
}; };
static HRESULT WINAPI OleControl_QueryInterface(IOleControl *iface, REFIID iid, void **out)
{
return dhtml_edit_qi(impl_from_IOleControl(iface), iid, out);
}
static ULONG WINAPI OleControl_AddRef(IOleControl *iface)
{
return dhtml_edit_addref(impl_from_IOleControl(iface));
}
static ULONG WINAPI OleControl_Release(IOleControl *iface)
{
return dhtml_edit_release(impl_from_IOleControl(iface));
}
static HRESULT WINAPI OleControl_GetControlInfo(IOleControl *iface, CONTROLINFO *pCI)
{
DHTMLEditImpl *This = impl_from_IOleControl(iface);
FIXME("(%p)->(%p)\n", This, pCI);
return E_NOTIMPL;
}
static HRESULT WINAPI OleControl_OnMnemonic(IOleControl *iface, MSG *msg)
{
DHTMLEditImpl *This = impl_from_IOleControl(iface);
FIXME("(%p)->(%p)\n", This, msg);
return E_NOTIMPL;
}
static HRESULT WINAPI OleControl_OnAmbientPropertyChange(IOleControl *iface, DISPID dispID)
{
DHTMLEditImpl *This = impl_from_IOleControl(iface);
FIXME("(%p)->(%d)\n", This, dispID);
return E_NOTIMPL;
}
static HRESULT WINAPI OleControl_FreezeEvents(IOleControl *iface, BOOL freeze)
{
DHTMLEditImpl *This = impl_from_IOleControl(iface);
FIXME("(%p)->(%x)\n", This, freeze);
return E_NOTIMPL;
}
static const IOleControlVtbl OleControlVtbl = {
OleControl_QueryInterface,
OleControl_AddRef,
OleControl_Release,
OleControl_GetControlInfo,
OleControl_OnMnemonic,
OleControl_OnAmbientPropertyChange,
OleControl_FreezeEvents
};
HRESULT dhtml_edit_create(REFIID iid, void **out) HRESULT dhtml_edit_create(REFIID iid, void **out)
{ {
DHTMLEditImpl *This; DHTMLEditImpl *This;
@ -874,6 +939,7 @@ HRESULT dhtml_edit_create(REFIID iid, void **out)
This->IDHTMLEdit_iface.lpVtbl = &DHTMLEditVtbl; This->IDHTMLEdit_iface.lpVtbl = &DHTMLEditVtbl;
This->IOleObject_iface.lpVtbl = &OleObjectVtbl; This->IOleObject_iface.lpVtbl = &OleObjectVtbl;
This->IPersistStreamInit_iface.lpVtbl = &PersistStreamInitVtbl; This->IPersistStreamInit_iface.lpVtbl = &PersistStreamInitVtbl;
This->IOleControl_iface.lpVtbl = &OleControlVtbl;
This->client_site = NULL; This->client_site = NULL;
This->ref = 1; This->ref = 1;