Jacek Caban : wmp: Added IProvideClassInfo2 stub implementation.
Alexandre Julliard
julliard at winehq.org
Tue Jan 28 13:33:25 CST 2014
Module: wine
Branch: master
Commit: cc01eb8f2142b6e034ee2cdbb9989ffe473c1bc2
URL: http://source.winehq.org/git/wine.git/?a=commit;h=cc01eb8f2142b6e034ee2cdbb9989ffe473c1bc2
Author: Jacek Caban <jacek at codeweavers.com>
Date: Tue Jan 28 13:10:44 2014 +0100
wmp: Added IProvideClassInfo2 stub implementation.
---
dlls/wmp/oleobj.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 54 insertions(+)
diff --git a/dlls/wmp/oleobj.c b/dlls/wmp/oleobj.c
index de50c48..bab6c62 100644
--- a/dlls/wmp/oleobj.c
+++ b/dlls/wmp/oleobj.c
@@ -24,6 +24,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(wmp);
struct WindowsMediaPlayer {
IOleObject IOleObject_iface;
+ IProvideClassInfo2 IProvideClassInfo2_iface;
LONG ref;
};
@@ -42,6 +43,12 @@ static HRESULT WINAPI OleObject_QueryInterface(IOleObject *iface, REFIID riid, v
}else if(IsEqualGUID(riid, &IID_IOleObject)) {
TRACE("(%p)->(IID_IOleObject %p)\n", This, ppv);
*ppv = &This->IOleObject_iface;
+ }else if(IsEqualGUID(riid, &IID_IProvideClassInfo)) {
+ TRACE("(%p)->(IID_IProvideClassInfo %p)\n", This, ppv);
+ *ppv = &This->IProvideClassInfo2_iface;
+ }else if(IsEqualGUID(riid, &IID_IProvideClassInfo2)) {
+ TRACE("(%p)->(IID_IProvideClassInfo2 %p)\n", This, ppv);
+ *ppv = &This->IProvideClassInfo2_iface;
}else {
FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
*ppv = NULL;
@@ -251,6 +258,51 @@ static const IOleObjectVtbl OleObjectVtbl = {
OleObject_SetColorScheme
};
+static inline WindowsMediaPlayer *impl_from_IProvideClassInfo2(IProvideClassInfo2 *iface)
+{
+ return CONTAINING_RECORD(iface, WindowsMediaPlayer, IProvideClassInfo2_iface);
+}
+
+static HRESULT WINAPI ProvideClassInfo2_QueryInterface(IProvideClassInfo2 *iface, REFIID riid, void **ppv)
+{
+ WindowsMediaPlayer *This = impl_from_IProvideClassInfo2(iface);
+ return IOleObject_QueryInterface(&This->IOleObject_iface, riid, ppv);
+}
+
+static ULONG WINAPI ProvideClassInfo2_AddRef(IProvideClassInfo2 *iface)
+{
+ WindowsMediaPlayer *This = impl_from_IProvideClassInfo2(iface);
+ return IOleObject_AddRef(&This->IOleObject_iface);
+}
+
+static ULONG WINAPI ProvideClassInfo2_Release(IProvideClassInfo2 *iface)
+{
+ WindowsMediaPlayer *This = impl_from_IProvideClassInfo2(iface);
+ return IOleObject_Release(&This->IOleObject_iface);
+}
+
+static HRESULT WINAPI ProvideClassInfo2_GetClassInfo(IProvideClassInfo2 *iface, ITypeInfo **ppTI)
+{
+ WindowsMediaPlayer *This = impl_from_IProvideClassInfo2(iface);
+ FIXME("(%p)->(%p)\n", This, ppTI);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI ProvideClassInfo2_GetGUID(IProvideClassInfo2 *iface, DWORD dwGuidKind, GUID *pGUID)
+{
+ WindowsMediaPlayer *This = impl_from_IProvideClassInfo2(iface);
+ FIXME("(%p)->(%d %p)\n", This, dwGuidKind, pGUID);
+ return E_NOTIMPL;
+}
+
+static const IProvideClassInfo2Vtbl ProvideClassInfo2Vtbl = {
+ ProvideClassInfo2_QueryInterface,
+ ProvideClassInfo2_AddRef,
+ ProvideClassInfo2_Release,
+ ProvideClassInfo2_GetClassInfo,
+ ProvideClassInfo2_GetGUID
+};
+
HRESULT WINAPI WMPFactory_CreateInstance(IClassFactory *iface, IUnknown *outer,
REFIID riid, void **ppv)
{
@@ -264,6 +316,8 @@ HRESULT WINAPI WMPFactory_CreateInstance(IClassFactory *iface, IUnknown *outer,
return E_OUTOFMEMORY;
wmp->IOleObject_iface.lpVtbl = &OleObjectVtbl;
+ wmp->IProvideClassInfo2_iface.lpVtbl = &ProvideClassInfo2Vtbl;
+
wmp->ref = 1;
hres = IOleObject_QueryInterface(&wmp->IOleObject_iface, riid, ppv);
More information about the wine-cvs
mailing list