3 * Copyright 2014 Austin English
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
31 #include "wine/debug.h"
33 WINE_DEFAULT_DEBUG_CHANNEL(mfplat
);
35 BOOL WINAPI
DllMain(HINSTANCE instance
, DWORD reason
, LPVOID reserved
)
39 case DLL_WINE_PREATTACH
:
40 return FALSE
; /* prefer native version */
41 case DLL_PROCESS_ATTACH
:
42 DisableThreadLibraryCalls(instance
);
49 /***********************************************************************
50 * MFStartup (mfplat.@)
52 HRESULT WINAPI
MFStartup(ULONG version
, DWORD flags
)
54 FIXME("(%u, %u): stub\n", version
, flags
);
55 return MF_E_BAD_STARTUP_VERSION
;
58 /***********************************************************************
59 * MFShutdown (mfplat.@)
61 HRESULT WINAPI
MFShutdown(void)
67 static HRESULT WINAPI
MFPluginControl_QueryInterface(IMFPluginControl
*iface
, REFIID riid
, void **ppv
)
69 if(IsEqualGUID(riid
, &IID_IUnknown
)) {
70 TRACE("(IID_IUnknown %p)\n", ppv
);
72 }else if(IsEqualGUID(riid
, &IID_IMFPluginControl
)) {
73 TRACE("(IID_IMFPluginControl %p)\n", ppv
);
76 FIXME("(%s %p)\n", debugstr_guid(riid
), ppv
);
81 IUnknown_AddRef((IUnknown
*)*ppv
);
85 static ULONG WINAPI
MFPluginControl_AddRef(IMFPluginControl
*iface
)
91 static ULONG WINAPI
MFPluginControl_Release(IMFPluginControl
*iface
)
97 static HRESULT WINAPI
MFPluginControl_GetPreferredClsid(IMFPluginControl
*iface
, DWORD plugin_type
,
98 const WCHAR
*selector
, CLSID
*clsid
)
100 FIXME("(%d %s %p)\n", plugin_type
, debugstr_w(selector
), clsid
);
104 static HRESULT WINAPI
MFPluginControl_GetPreferredClsidByIndex(IMFPluginControl
*iface
, DWORD plugin_type
,
105 DWORD index
, WCHAR
**selector
, CLSID
*clsid
)
107 FIXME("(%d %d %p %p)\n", plugin_type
, index
, selector
, clsid
);
111 static HRESULT WINAPI
MFPluginControl_SetPreferredClsid(IMFPluginControl
*iface
, DWORD plugin_type
,
112 const WCHAR
*selector
, const CLSID
*clsid
)
114 FIXME("(%d %s %s)\n", plugin_type
, debugstr_w(selector
), debugstr_guid(clsid
));
118 static HRESULT WINAPI
MFPluginControl_IsDisabled(IMFPluginControl
*iface
, DWORD plugin_type
, REFCLSID clsid
)
120 FIXME("(%d %s)\n", plugin_type
, debugstr_guid(clsid
));
124 static HRESULT WINAPI
MFPluginControl_GetDisabledByIndex(IMFPluginControl
*iface
, DWORD plugin_type
, DWORD index
, CLSID
*clsid
)
126 FIXME("(%d %d %p)\n", plugin_type
, index
, clsid
);
130 static HRESULT WINAPI
MFPluginControl_SetDisabled(IMFPluginControl
*iface
, DWORD plugin_type
, REFCLSID clsid
, BOOL disabled
)
132 FIXME("(%d %s %x)\n", plugin_type
, debugstr_guid(clsid
), disabled
);
136 static const IMFPluginControlVtbl MFPluginControlVtbl
= {
137 MFPluginControl_QueryInterface
,
138 MFPluginControl_AddRef
,
139 MFPluginControl_Release
,
140 MFPluginControl_GetPreferredClsid
,
141 MFPluginControl_GetPreferredClsidByIndex
,
142 MFPluginControl_SetPreferredClsid
,
143 MFPluginControl_IsDisabled
,
144 MFPluginControl_GetDisabledByIndex
,
145 MFPluginControl_SetDisabled
148 static IMFPluginControl plugin_control
= { &MFPluginControlVtbl
};
150 /***********************************************************************
151 * MFGetPluginControl (mfplat.@)
153 HRESULT WINAPI
MFGetPluginControl(IMFPluginControl
**ret
)
155 TRACE("(%p)\n", ret
);
157 *ret
= &plugin_control
;