From c0ecc1025776e18472aba21c15150f55a58bff82 Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Tue, 24 Dec 2013 19:56:00 +0900 Subject: [PATCH] taskschd: Add registration for TaskScheduler interfaces. --- configure | 2 +- configure.ac | 2 +- dlls/taskschd/Makefile.in | 2 ++ dlls/taskschd/taskschd.c | 20 ++++++++++++++++++++ dlls/taskschd/taskschd.spec | 4 ++-- dlls/taskschd/taskschd_tlb.idl | 21 +++++++++++++++++++++ 6 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 dlls/taskschd/taskschd_tlb.idl diff --git a/configure b/configure index de73ca9928d..50d5966d56c 100755 --- a/configure +++ b/configure @@ -17152,7 +17152,7 @@ wine_fn_config_test dlls/sxs/tests sxs_test wine_fn_config_dll system.drv16 enable_win16 wine_fn_config_dll t2embed enable_t2embed wine_fn_config_dll tapi32 enable_tapi32 implib -wine_fn_config_dll taskschd enable_taskschd +wine_fn_config_dll taskschd enable_taskschd clean wine_fn_config_dll toolhelp.dll16 enable_win16 wine_fn_config_dll traffic enable_traffic wine_fn_config_dll twain.dll16 enable_win16 diff --git a/configure.ac b/configure.ac index e0455a27b80..b4fc0b1a4b9 100644 --- a/configure.ac +++ b/configure.ac @@ -3195,7 +3195,7 @@ WINE_CONFIG_TEST(dlls/sxs/tests) WINE_CONFIG_DLL(system.drv16,enable_win16) WINE_CONFIG_DLL(t2embed) WINE_CONFIG_DLL(tapi32,,[implib]) -WINE_CONFIG_DLL(taskschd) +WINE_CONFIG_DLL(taskschd,,[clean]) WINE_CONFIG_DLL(toolhelp.dll16,enable_win16) WINE_CONFIG_DLL(traffic) WINE_CONFIG_DLL(twain.dll16,enable_win16) diff --git a/dlls/taskschd/Makefile.in b/dlls/taskschd/Makefile.in index f5f758f0469..e9a19e62860 100644 --- a/dlls/taskschd/Makefile.in +++ b/dlls/taskschd/Makefile.in @@ -4,4 +4,6 @@ C_SRCS = \ task.c \ taskschd.c +IDL_TLB_SRCS = taskschd_tlb.idl + @MAKE_DLL_RULES@ diff --git a/dlls/taskschd/taskschd.c b/dlls/taskschd/taskschd.c index 4ad5f4c30fc..ead8c5ae880 100644 --- a/dlls/taskschd/taskschd.c +++ b/dlls/taskschd/taskschd.c @@ -26,6 +26,7 @@ #include "windef.h" #include "winbase.h" #include "objbase.h" +#include "rpcproxy.h" #include "taskschd.h" #include "taskschd_private.h" @@ -33,6 +34,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(taskschd); +static HINSTANCE schd_instance; + typedef struct { IClassFactory IClassFactory_iface; @@ -123,6 +126,7 @@ BOOL WINAPI DllMain(HINSTANCE hinst, DWORD reason, LPVOID reserved) return FALSE; /* prefer native version */ case DLL_PROCESS_ATTACH: + schd_instance = hinst; DisableThreadLibraryCalls(hinst); break; } @@ -161,6 +165,22 @@ HRESULT WINAPI DllCanUnloadNow(void) return S_FALSE; } +/*********************************************************************** + * DllRegisterServer + */ +HRESULT WINAPI DllRegisterServer(void) +{ + return __wine_register_resources(schd_instance); +} + +/*********************************************************************** + * DllUnregisterServer + */ +HRESULT WINAPI DllUnregisterServer(void) +{ + return __wine_unregister_resources(schd_instance); +} + const char *debugstr_variant(const VARIANT *v) { if (!v) return "(null)"; diff --git a/dlls/taskschd/taskschd.spec b/dlls/taskschd/taskschd.spec index d7e304000bf..af75eeac376 100644 --- a/dlls/taskschd/taskschd.spec +++ b/dlls/taskschd/taskschd.spec @@ -1,5 +1,5 @@ @ stdcall -private DllCanUnloadNow() @ stdcall -private DllGetClassObject(ptr ptr ptr) @ stub DllGetVersion -@ stub DllRegisterServer -@ stub DllUnregisterServer +@ stdcall -private DllRegisterServer() +@ stdcall -private DllUnregisterServer() diff --git a/dlls/taskschd/taskschd_tlb.idl b/dlls/taskschd/taskschd_tlb.idl new file mode 100644 index 00000000000..4083166fa0a --- /dev/null +++ b/dlls/taskschd/taskschd_tlb.idl @@ -0,0 +1,21 @@ +/* + * Copyright 2013 Dmitry Timoshkov + * + * 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 regtypelib + +#include "taskschd.idl"