Signed-off-by: Alistair Leslie-Hughes leslie_alistair@hotmail.com --- dlls/mfreadwrite/Makefile.in | 2 ++ dlls/mfreadwrite/main.c | 13 +++++++++++++ dlls/mfreadwrite/mf_classes.idl | 25 +++++++++++++++++++++++++ dlls/mfreadwrite/mfreadwrite.spec | 2 ++ 4 files changed, 42 insertions(+) create mode 100644 dlls/mfreadwrite/mf_classes.idl
diff --git a/dlls/mfreadwrite/Makefile.in b/dlls/mfreadwrite/Makefile.in index 4b8ee82506..445beaa62d 100644 --- a/dlls/mfreadwrite/Makefile.in +++ b/dlls/mfreadwrite/Makefile.in @@ -3,3 +3,5 @@ IMPORTLIB = mfreadwrite
C_SRCS = \ main.c + +IDL_SRCS = mf_classes.idl diff --git a/dlls/mfreadwrite/main.c b/dlls/mfreadwrite/main.c index 2a5e29a48e..b001e68354 100644 --- a/dlls/mfreadwrite/main.c +++ b/dlls/mfreadwrite/main.c @@ -31,6 +31,8 @@
WINE_DEFAULT_DEBUG_CHANNEL(mfplat);
+static HINSTANCE mfinstance; + BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved) { switch (reason) @@ -38,6 +40,7 @@ BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved) case DLL_WINE_PREATTACH: return FALSE; /* prefer native version */ case DLL_PROCESS_ATTACH: + mfinstance = instance; DisableThreadLibraryCalls(instance); break; } @@ -65,6 +68,16 @@ HRESULT WINAPI DllCanUnloadNow(void) return S_FALSE; }
+HRESULT WINAPI DllRegisterServer(void) +{ + return __wine_register_resources( mfinstance ); +} + +HRESULT WINAPI DllUnregisterServer(void) +{ + return __wine_unregister_resources( mfinstance ); +} + typedef struct _srcreader { IMFSourceReader IMFSourceReader_iface; diff --git a/dlls/mfreadwrite/mf_classes.idl b/dlls/mfreadwrite/mf_classes.idl new file mode 100644 index 0000000000..99dbd80018 --- /dev/null +++ b/dlls/mfreadwrite/mf_classes.idl @@ -0,0 +1,25 @@ +/* + * + * Copyright 2019 Alistair Leslie-Hughes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ +#pragma makedep register + +[ + threading(both), + uuid(48e2ed0f-98c2-4a37-bed5-166312ddd83f) +] +coclass MFReadWriteClassFactory { interface IMFReadWriteClassFactory; } diff --git a/dlls/mfreadwrite/mfreadwrite.spec b/dlls/mfreadwrite/mfreadwrite.spec index f46c5923e2..ad61646718 100644 --- a/dlls/mfreadwrite/mfreadwrite.spec +++ b/dlls/mfreadwrite/mfreadwrite.spec @@ -1,5 +1,7 @@ @ stdcall -private DllCanUnloadNow() @ stdcall -private DllGetClassObject(ptr ptr ptr) +@ stdcall -private DllRegisterServer() +@ stdcall -private DllUnregisterServer() @ stub MFCreateSinkWriterFromMediaSink @ stub MFCreateSinkWriterFromURL @ stdcall MFCreateSourceReaderFromByteStream(ptr ptr ptr)