wmp: Added IOleInPlaceObjectWindowless stub implementation.

This commit is contained in:
Jacek Caban 2014-02-11 11:50:48 +01:00 committed by Alexandre Julliard
parent d1691bc204
commit 07c3e134c8
2 changed files with 113 additions and 0 deletions

View File

@ -26,6 +26,7 @@ struct WindowsMediaPlayer {
IOleObject IOleObject_iface; IOleObject IOleObject_iface;
IProvideClassInfo2 IProvideClassInfo2_iface; IProvideClassInfo2 IProvideClassInfo2_iface;
IPersistStreamInit IPersistStreamInit_iface; IPersistStreamInit IPersistStreamInit_iface;
IOleInPlaceObjectWindowless IOleInPlaceObjectWindowless_iface;
LONG ref; LONG ref;
@ -68,6 +69,15 @@ static HRESULT WINAPI OleObject_QueryInterface(IOleObject *iface, REFIID riid, v
}else if(IsEqualGUID(riid, &IID_IPersistStreamInit)) { }else if(IsEqualGUID(riid, &IID_IPersistStreamInit)) {
TRACE("(%p)->(IID_IPersistStreamInit %p)\n", This, ppv); TRACE("(%p)->(IID_IPersistStreamInit %p)\n", This, ppv);
*ppv = &This->IPersistStreamInit_iface; *ppv = &This->IPersistStreamInit_iface;
}else if(IsEqualGUID(riid, &IID_IOleWindow)) {
TRACE("(%p)->(IID_IOleWindow %p)\n", This, ppv);
*ppv = &This->IOleInPlaceObjectWindowless_iface;
}else if(IsEqualGUID(riid, &IID_IOleInPlaceObject)) {
TRACE("(%p)->(IID_IOleInPlaceObject %p)\n", This, ppv);
*ppv = &This->IOleInPlaceObjectWindowless_iface;
}else if(IsEqualGUID(riid, &IID_IOleInPlaceObjectWindowless)) {
TRACE("(%p)->(IID_IOleInPlaceObjectWindowless %p)\n", This, ppv);
*ppv = &This->IOleInPlaceObjectWindowless_iface;
}else { }else {
FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
*ppv = NULL; *ppv = NULL;
@ -318,6 +328,104 @@ static const IOleObjectVtbl OleObjectVtbl = {
OleObject_SetColorScheme OleObject_SetColorScheme
}; };
static inline WindowsMediaPlayer *impl_from_IOleInPlaceObjectWindowless(IOleInPlaceObjectWindowless *iface)
{
return CONTAINING_RECORD(iface, WindowsMediaPlayer, IOleInPlaceObjectWindowless_iface);
}
static HRESULT WINAPI OleInPlaceObjectWindowless_QueryInterface(IOleInPlaceObjectWindowless *iface,
REFIID riid, void **ppv)
{
WindowsMediaPlayer *This = impl_from_IOleInPlaceObjectWindowless(iface);
return IOleObject_QueryInterface(&This->IOleObject_iface, riid, ppv);
}
static ULONG WINAPI OleInPlaceObjectWindowless_AddRef(IOleInPlaceObjectWindowless *iface)
{
WindowsMediaPlayer *This = impl_from_IOleInPlaceObjectWindowless(iface);
return IOleObject_AddRef(&This->IOleObject_iface);
}
static ULONG WINAPI OleInPlaceObjectWindowless_Release(IOleInPlaceObjectWindowless *iface)
{
WindowsMediaPlayer *This = impl_from_IOleInPlaceObjectWindowless(iface);
return IOleObject_Release(&This->IOleObject_iface);
}
static HRESULT WINAPI OleInPlaceObjectWindowless_GetWindow(IOleInPlaceObjectWindowless *iface, HWND *phwnd)
{
WindowsMediaPlayer *This = impl_from_IOleInPlaceObjectWindowless(iface);
FIXME("(%p)->(%p)\n", This, phwnd);
return E_NOTIMPL;
}
static HRESULT WINAPI OleInPlaceObjectWindowless_ContextSensitiveHelp(IOleInPlaceObjectWindowless *iface,
BOOL fEnterMode)
{
WindowsMediaPlayer *This = impl_from_IOleInPlaceObjectWindowless(iface);
FIXME("(%p)->(%x)\n", This, fEnterMode);
return E_NOTIMPL;
}
static HRESULT WINAPI OleInPlaceObjectWindowless_InPlaceDeactivate(IOleInPlaceObjectWindowless *iface)
{
WindowsMediaPlayer *This = impl_from_IOleInPlaceObjectWindowless(iface);
FIXME("(%p)\n", This);
return E_NOTIMPL;
}
static HRESULT WINAPI OleInPlaceObjectWindowless_UIDeactivate(IOleInPlaceObjectWindowless *iface)
{
WindowsMediaPlayer *This = impl_from_IOleInPlaceObjectWindowless(iface);
FIXME("(%p)\n", This);
return E_NOTIMPL;
}
static HRESULT WINAPI OleInPlaceObjectWindowless_SetObjectRects(IOleInPlaceObjectWindowless *iface,
LPCRECT lprcPosRect, LPCRECT lprcClipRect)
{
WindowsMediaPlayer *This = impl_from_IOleInPlaceObjectWindowless(iface);
FIXME("(%p)->(%p %p)\n", This, lprcPosRect, lprcClipRect);
return E_NOTIMPL;
}
static HRESULT WINAPI OleInPlaceObjectWindowless_ReactivateAndUndo(IOleInPlaceObjectWindowless *iface)
{
WindowsMediaPlayer *This = impl_from_IOleInPlaceObjectWindowless(iface);
FIXME("(%p)\n", This);
return E_NOTIMPL;
}
static HRESULT WINAPI OleInPlaceObjectWindowless_OnWindowMessage(IOleInPlaceObjectWindowless *iface,
UINT msg, WPARAM wParam, LPARAM lParam, LRESULT *lpResult)
{
WindowsMediaPlayer *This = impl_from_IOleInPlaceObjectWindowless(iface);
FIXME("(%p)->(%u %lu %lu %p)\n", This, msg, wParam, lParam, lpResult);
return E_NOTIMPL;
}
static HRESULT WINAPI OleInPlaceObjectWindowless_GetDropTarget(IOleInPlaceObjectWindowless *iface,
IDropTarget **ppDropTarget)
{
WindowsMediaPlayer *This = impl_from_IOleInPlaceObjectWindowless(iface);
FIXME("(%p)->(%p)\n", This, ppDropTarget);
return E_NOTIMPL;
}
static const IOleInPlaceObjectWindowlessVtbl OleInPlaceObjectWindowlessVtbl = {
OleInPlaceObjectWindowless_QueryInterface,
OleInPlaceObjectWindowless_AddRef,
OleInPlaceObjectWindowless_Release,
OleInPlaceObjectWindowless_GetWindow,
OleInPlaceObjectWindowless_ContextSensitiveHelp,
OleInPlaceObjectWindowless_InPlaceDeactivate,
OleInPlaceObjectWindowless_UIDeactivate,
OleInPlaceObjectWindowless_SetObjectRects,
OleInPlaceObjectWindowless_ReactivateAndUndo,
OleInPlaceObjectWindowless_OnWindowMessage,
OleInPlaceObjectWindowless_GetDropTarget
};
static inline WindowsMediaPlayer *impl_from_IProvideClassInfo2(IProvideClassInfo2 *iface) static inline WindowsMediaPlayer *impl_from_IProvideClassInfo2(IProvideClassInfo2 *iface)
{ {
return CONTAINING_RECORD(iface, WindowsMediaPlayer, IProvideClassInfo2_iface); return CONTAINING_RECORD(iface, WindowsMediaPlayer, IProvideClassInfo2_iface);
@ -466,6 +574,7 @@ HRESULT WINAPI WMPFactory_CreateInstance(IClassFactory *iface, IUnknown *outer,
wmp->IOleObject_iface.lpVtbl = &OleObjectVtbl; wmp->IOleObject_iface.lpVtbl = &OleObjectVtbl;
wmp->IProvideClassInfo2_iface.lpVtbl = &ProvideClassInfo2Vtbl; wmp->IProvideClassInfo2_iface.lpVtbl = &ProvideClassInfo2Vtbl;
wmp->IPersistStreamInit_iface.lpVtbl = &PersistStreamInitVtbl; wmp->IPersistStreamInit_iface.lpVtbl = &PersistStreamInitVtbl;
wmp->IOleInPlaceObjectWindowless_iface.lpVtbl = &OleInPlaceObjectWindowlessVtbl;
wmp->ref = 1; wmp->ref = 1;

View File

@ -622,6 +622,10 @@ static void test_QI(IUnknown *unk)
hres = IUnknown_QueryInterface(unk, &IID_IQuickActivate, (void**)&tmp); hres = IUnknown_QueryInterface(unk, &IID_IQuickActivate, (void**)&tmp);
ok(hres == E_NOINTERFACE, "Got IQuickActivate iface when no expected\n"); ok(hres == E_NOINTERFACE, "Got IQuickActivate iface when no expected\n");
hres = IUnknown_QueryInterface(unk, &IID_IOleInPlaceObjectWindowless, (void**)&tmp);
ok(hres == S_OK, "Could not get IOleInPlaceObjectWindowless iface: %08x\n", hres);
IUnknown_Release(tmp);
} }
static void test_wmp(void) static void test_wmp(void)