Jacek Caban : wpc: Register WindowsParentalControls class.

Alexandre Julliard julliard at winehq.org
Tue Aug 23 11:28:44 CDT 2016


Module: wine
Branch: master
Commit: 0cb7301aecb1309f6f295aa1bc1a87345c922942
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=0cb7301aecb1309f6f295aa1bc1a87345c922942

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Aug 22 16:52:54 2016 +0200

wpc: Register WindowsParentalControls class.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 configure                |  2 +-
 configure.ac             |  2 +-
 dlls/wpc/Makefile.in     |  2 ++
 dlls/wpc/tests/wpc.c     |  4 ++--
 dlls/wpc/wpc.c           | 22 ++++++++++++++++++++++
 dlls/wpc/wpc.spec        |  2 ++
 dlls/wpc/wpc_classes.idl | 21 +++++++++++++++++++++
 include/wpcapi.idl       |  6 ++++++
 8 files changed, 57 insertions(+), 4 deletions(-)

diff --git a/configure b/configure
index 12879c3..0211b20 100755
--- a/configure
+++ b/configure
@@ -18176,7 +18176,7 @@ wine_fn_config_test dlls/wmp/tests wmp_test
 wine_fn_config_dll wmvcore enable_wmvcore
 wine_fn_config_dll wnaspi32 enable_wnaspi32 implib
 wine_fn_config_dll wow32 enable_win16 implib
-wine_fn_config_dll wpc enable_wpc
+wine_fn_config_dll wpc enable_wpc clean
 wine_fn_config_test dlls/wpc/tests wpc_test
 wine_fn_config_dll wpcap enable_wpcap
 wine_fn_config_dll ws2_32 enable_ws2_32 implib
diff --git a/configure.ac b/configure.ac
index 60fc4f8..bc95e88 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3405,7 +3405,7 @@ WINE_CONFIG_TEST(dlls/wmp/tests)
 WINE_CONFIG_DLL(wmvcore)
 WINE_CONFIG_DLL(wnaspi32,,[implib])
 WINE_CONFIG_DLL(wow32,enable_win16,[implib])
-WINE_CONFIG_DLL(wpc)
+WINE_CONFIG_DLL(wpc,,[clean])
 WINE_CONFIG_TEST(dlls/wpc/tests)
 WINE_CONFIG_DLL(wpcap)
 WINE_CONFIG_DLL(ws2_32,,[implib])
diff --git a/dlls/wpc/Makefile.in b/dlls/wpc/Makefile.in
index edd729f..829a769 100644
--- a/dlls/wpc/Makefile.in
+++ b/dlls/wpc/Makefile.in
@@ -2,3 +2,5 @@ MODULE = wpc.dll
 
 C_SRCS = \
 	wpc.c
+
+IDL_SRCS = wpc_classes.idl
diff --git a/dlls/wpc/tests/wpc.c b/dlls/wpc/tests/wpc.c
index 4d3da36..9fcc3f2 100644
--- a/dlls/wpc/tests/wpc.c
+++ b/dlls/wpc/tests/wpc.c
@@ -30,9 +30,9 @@ static void test_wpc(void)
 
     hres = CoCreateInstance(&CLSID_WindowsParentalControls, NULL, CLSCTX_INPROC_SERVER, &IID_IWindowsParentalControls, (void**)&wpc);
     if(hres == REGDB_E_CLASSNOTREG)
-        todo_wine win_skip("CLSID_WindowsParentalControls not registered\n");
+        win_skip("CLSID_WindowsParentalControls not registered\n");
     else
-        ok(hres == S_OK, "Could not create CLSID_WindowsParentalControls instance: %08x\n", hres);
+        todo_wine ok(hres == S_OK, "Could not create CLSID_WindowsParentalControls instance: %08x\n", hres);
     if(FAILED(hres))
         return;
 
diff --git a/dlls/wpc/wpc.c b/dlls/wpc/wpc.c
index a3e7c03..48f8edf 100644
--- a/dlls/wpc/wpc.c
+++ b/dlls/wpc/wpc.c
@@ -17,11 +17,14 @@
  */
 
 #include "wpcapi.h"
+#include "rpcproxy.h"
 
 #include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(wpc);
 
+static HINSTANCE wpc_instance;
+
 /******************************************************************
  *              DllMain
  */
@@ -34,6 +37,7 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv)
         return FALSE;  /* prefer native version */
     case DLL_PROCESS_ATTACH:
         DisableThreadLibraryCalls(hInstDLL);
+        wpc_instance = hInstDLL;
         break;
     }
 
@@ -57,3 +61,21 @@ HRESULT WINAPI DllCanUnloadNow(void)
     TRACE("\n");
     return S_FALSE;
 }
+
+/***********************************************************************
+ *          DllRegisterServer (wpc.@)
+ */
+HRESULT WINAPI DllRegisterServer(void)
+{
+    TRACE("()\n");
+    return __wine_register_resources(wpc_instance);
+}
+
+/***********************************************************************
+ *          DllUnregisterServer (wpc.@)
+ */
+HRESULT WINAPI DllUnregisterServer(void)
+{
+    TRACE("()\n");
+    return __wine_unregister_resources(wpc_instance);
+}
diff --git a/dlls/wpc/wpc.spec b/dlls/wpc/wpc.spec
index 195cf86..fa1c086 100644
--- a/dlls/wpc/wpc.spec
+++ b/dlls/wpc/wpc.spec
@@ -1,3 +1,5 @@
 @ stub ApplyParentalControlsW
 @ stdcall -private DllCanUnloadNow()
 @ stdcall -private DllGetClassObject(ptr ptr ptr)
+@ stdcall -private DllRegisterServer()   # not exported by native
+@ stdcall -private DllUnregisterServer() # not exported by native
diff --git a/dlls/wpc/wpc_classes.idl b/dlls/wpc/wpc_classes.idl
new file mode 100644
index 0000000..89406ac
--- /dev/null
+++ b/dlls/wpc/wpc_classes.idl
@@ -0,0 +1,21 @@
+/*
+ * Copyright 2016 Jacek Caban for CodeWeavers
+ *
+ * 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
+
+#include "wpcapi.idl"
diff --git a/include/wpcapi.idl b/include/wpcapi.idl
index 097c290..a46a310 100644
--- a/include/wpcapi.idl
+++ b/include/wpcapi.idl
@@ -19,6 +19,10 @@
 import "oaidl.idl";
 import "ocidl.idl";
 
+#ifndef __WIDL__
+#define threading(model)
+#endif
+
 typedef [v1_enum] enum tagWPCFLAG_RESTRICTION {
     WPCFLAG_NO_RESTRICTION    = 0x0000,
     WPCFLAG_LOGGING_REQUIRED  = 0x0001,
@@ -116,6 +120,8 @@ interface IWindowsParentalControls : IWindowsParentalControlsCore
 }
 
 [
+    helpstring("WindowsParentalControls class"),
+    threading(both),
     uuid(e77cc89b-7401-4c04-8ced-149db35add04)
 ]
 coclass WindowsParentalControls




More information about the wine-cvs mailing list