From 04c708b1b0d62ae169f76db7fd84694d40fd9fc0 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Fri, 27 Jan 2012 18:48:31 +0000 Subject: [PATCH] [MSTASK] * Sync to Wine 1.3.37. svn path=/trunk/; revision=55257 --- reactos/dll/win32/mstask/factory.c | 17 ++++- reactos/dll/win32/mstask/mstask.inf | 16 ---- reactos/dll/win32/mstask/mstask.rgs | 17 +++++ reactos/dll/win32/mstask/mstask_main.c | 93 +---------------------- reactos/dll/win32/mstask/mstask_private.h | 41 ++-------- reactos/dll/win32/mstask/rsrc.rc | 21 +---- reactos/dll/win32/mstask/task.c | 58 +++++++++----- reactos/dll/win32/mstask/task_scheduler.c | 23 ++++-- reactos/dll/win32/mstask/task_trigger.c | 28 +++++-- reactos/media/doc/README.WINE | 2 +- 10 files changed, 118 insertions(+), 198 deletions(-) delete mode 100644 reactos/dll/win32/mstask/mstask.inf create mode 100644 reactos/dll/win32/mstask/mstask.rgs diff --git a/reactos/dll/win32/mstask/factory.c b/reactos/dll/win32/mstask/factory.c index 8906d922359..9dc1e2932db 100644 --- a/reactos/dll/win32/mstask/factory.c +++ b/reactos/dll/win32/mstask/factory.c @@ -21,12 +21,23 @@ WINE_DEFAULT_DEBUG_CHANNEL(mstask); +struct ClassFactoryImpl +{ + IClassFactory IClassFactory_iface; + LONG ref; +}; + +static inline ClassFactoryImpl *impl_from_IClassFactory(IClassFactory *iface) +{ + return CONTAINING_RECORD(iface, ClassFactoryImpl, IClassFactory_iface); +} + static HRESULT WINAPI MSTASK_IClassFactory_QueryInterface( LPCLASSFACTORY iface, REFIID riid, LPVOID *ppvObj) { - ClassFactoryImpl *This = (ClassFactoryImpl *)iface; + ClassFactoryImpl *This = impl_from_IClassFactory(iface); TRACE("IID: %s\n",debugstr_guid(riid)); if (ppvObj == NULL) @@ -35,7 +46,7 @@ static HRESULT WINAPI MSTASK_IClassFactory_QueryInterface( if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IClassFactory)) { - *ppvObj = &This->lpVtbl; + *ppvObj = &This->IClassFactory_iface; IClassFactory_AddRef(iface); return S_OK; } @@ -105,4 +116,4 @@ static const IClassFactoryVtbl IClassFactory_Vtbl = MSTASK_IClassFactory_LockServer }; -ClassFactoryImpl MSTASK_ClassFactory = { &IClassFactory_Vtbl }; +ClassFactoryImpl MSTASK_ClassFactory = { { &IClassFactory_Vtbl } }; diff --git a/reactos/dll/win32/mstask/mstask.inf b/reactos/dll/win32/mstask/mstask.inf deleted file mode 100644 index 10560933fdf..00000000000 --- a/reactos/dll/win32/mstask/mstask.inf +++ /dev/null @@ -1,16 +0,0 @@ -[version] -Signature="$CHICAGO$" - -[RegisterDll] -AddReg=Classes.Reg - -[UnregisterDll] -DelReg=Classes.Reg - -[Classes.Reg] -HKCR,"CLSID\%CLSID_CTaskScheduler%",,,"CTaskScheduler" -HKCR,"CLSID\%CLSID_CTaskScheduler%\InProcServer32",,,"mstask.dll" -HKCR,"CLSID\%CLSID_CTaskScheduler%\InProcServer32","ThreadingModel",,"Both" -HKCR,"CLSID\%CLSID_CTask%",,,"CTask" -HKCR,"CLSID\%CLSID_CTask%\InProcServer32",,,"mstask.dll" -HKCR,"CLSID\%CLSID_CTask%\InProcServer32","ThreadingModel",,"Both" diff --git a/reactos/dll/win32/mstask/mstask.rgs b/reactos/dll/win32/mstask/mstask.rgs new file mode 100644 index 00000000000..f9532e7b3c4 --- /dev/null +++ b/reactos/dll/win32/mstask/mstask.rgs @@ -0,0 +1,17 @@ +HKCR +{ + NoRemove Interface + { + } + NoRemove CLSID + { + '{148BD52A-A2AB-11CE-B11F-00AA00530503}' = s 'CTaskScheduler' + { + InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Both' } + } + '{148BD520-A2AB-11CE-B11F-00AA00530503}' = s 'CTask' + { + InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Both' } + } + } +} diff --git a/reactos/dll/win32/mstask/mstask_main.c b/reactos/dll/win32/mstask/mstask_main.c index df1f1d8c5e6..2a13bae6e75 100644 --- a/reactos/dll/win32/mstask/mstask_main.c +++ b/reactos/dll/win32/mstask/mstask_main.c @@ -19,8 +19,8 @@ #include #include "mstask_private.h" -#include "winreg.h" -#include "advpub.h" +#include "objbase.h" +#include "rpcproxy.h" #include "wine/debug.h" @@ -66,97 +66,12 @@ HRESULT WINAPI DllCanUnloadNow(void) return dll_ref != 0 ? S_FALSE : S_OK; } -static inline char *mstask_strdup(const char *s) -{ - size_t n = strlen(s) + 1; - char *d = HeapAlloc(GetProcessHeap(), 0, n); - return d ? memcpy(d, s, n) : NULL; -} - -static HRESULT init_register_strtable(STRTABLEA *strtable) -{ -#define CLSID_EXPANSION_ENTRY(id) { "CLSID_" #id, &CLSID_ ## id } - static const struct - { - const char *name; - const CLSID *clsid; - } - expns[] = - { - CLSID_EXPANSION_ENTRY(CTaskScheduler), - CLSID_EXPANSION_ENTRY(CTask) - }; -#undef CLSID_EXPANSION_ENTRY - static STRENTRYA pse[sizeof expns / sizeof expns[0]]; - unsigned int i; - - strtable->cEntries = sizeof pse / sizeof pse[0]; - strtable->pse = pse; - for (i = 0; i < strtable->cEntries; i++) - { - static const char dummy_sample[] = - "{12345678-1234-1234-1234-123456789012}"; - const CLSID *clsid = expns[i].clsid; - pse[i].pszName = mstask_strdup(expns[i].name); - pse[i].pszValue = HeapAlloc(GetProcessHeap(), 0, sizeof dummy_sample); - if (!pse[i].pszName || !pse[i].pszValue) - return E_OUTOFMEMORY; - sprintf(pse[i].pszValue, - "{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}", - clsid->Data1, clsid->Data2, clsid->Data3, clsid->Data4[0], - clsid->Data4[1], clsid->Data4[2], clsid->Data4[3], - clsid->Data4[4], clsid->Data4[5], clsid->Data4[6], - clsid->Data4[7]); - } - - return S_OK; -} - -static void cleanup_register_strtable(STRTABLEA *strtable) -{ - unsigned int i; - for (i = 0; i < strtable->cEntries; i++) - { - HeapFree(GetProcessHeap(), 0, strtable->pse[i].pszName); - HeapFree(GetProcessHeap(), 0, strtable->pse[i].pszValue); - if (!strtable->pse[i].pszName || !strtable->pse[i].pszValue) - return; - } -} - -static HRESULT register_mstask(BOOL do_register) -{ - HRESULT hr; - STRTABLEA strtable; - HMODULE hAdvpack; - HRESULT (WINAPI *pRegInstall)(HMODULE hm, - LPCSTR pszSection, const STRTABLEA* pstTable); - static const WCHAR wszAdvpack[] = - {'a','d','v','p','a','c','k','.','d','l','l',0}; - - TRACE("(%x)\n", do_register); - - hAdvpack = LoadLibraryW(wszAdvpack); - pRegInstall = (void *)GetProcAddress(hAdvpack, "RegInstall"); - - hr = init_register_strtable(&strtable); - if (SUCCEEDED(hr)) - hr = pRegInstall(hInst, do_register ? "RegisterDll" : "UnregisterDll", - &strtable); - cleanup_register_strtable(&strtable); - - if (FAILED(hr)) - WINE_ERR("RegInstall failed: %08x\n", hr); - - return hr; -} - HRESULT WINAPI DllRegisterServer(void) { - return register_mstask(TRUE); + return __wine_register_resources( hInst ); } HRESULT WINAPI DllUnregisterServer(void) { - return register_mstask(FALSE); + return __wine_unregister_resources( hInst ); } diff --git a/reactos/dll/win32/mstask/mstask_private.h b/reactos/dll/win32/mstask/mstask_private.h index eb3ecf856f2..17c20fee432 100644 --- a/reactos/dll/win32/mstask/mstask_private.h +++ b/reactos/dll/win32/mstask/mstask_private.h @@ -29,42 +29,13 @@ #include "ole2.h" #include "mstask.h" -extern LONG dll_ref; +extern LONG dll_ref DECLSPEC_HIDDEN; -typedef struct -{ - const IClassFactoryVtbl *lpVtbl; - LONG ref; -} ClassFactoryImpl; -extern ClassFactoryImpl MSTASK_ClassFactory; +typedef struct ClassFactoryImpl ClassFactoryImpl; +extern ClassFactoryImpl MSTASK_ClassFactory DECLSPEC_HIDDEN; -typedef struct -{ - const ITaskTriggerVtbl *lpVtbl; - LONG ref; - TASK_TRIGGER triggerCond; -} TaskTriggerImpl; -extern HRESULT TaskTriggerConstructor(LPVOID *ppObj); - -typedef struct -{ - const ITaskSchedulerVtbl *lpVtbl; - LONG ref; -} TaskSchedulerImpl; -extern HRESULT TaskSchedulerConstructor(LPVOID *ppObj); - -typedef struct -{ - const ITaskVtbl *lpVtbl; - const IPersistFileVtbl *persistVtbl; - LONG ref; - LPWSTR taskName; - LPWSTR applicationName; - LPWSTR parameters; - LPWSTR comment; - DWORD maxRunTime; - LPWSTR accountName; -} TaskImpl; -extern HRESULT TaskConstructor(LPCWSTR pwszTaskName, LPVOID *ppObj); +extern HRESULT TaskTriggerConstructor(LPVOID *ppObj) DECLSPEC_HIDDEN; +extern HRESULT TaskSchedulerConstructor(LPVOID *ppObj) DECLSPEC_HIDDEN; +extern HRESULT TaskConstructor(LPCWSTR pwszTaskName, LPVOID *ppObj) DECLSPEC_HIDDEN; #endif /* __MSTASK_PRIVATE_H__ */ diff --git a/reactos/dll/win32/mstask/rsrc.rc b/reactos/dll/win32/mstask/rsrc.rc index 9915e028c48..8a22d31633f 100644 --- a/reactos/dll/win32/mstask/rsrc.rc +++ b/reactos/dll/win32/mstask/rsrc.rc @@ -1,20 +1 @@ -/* - * Copyright 2008 Google (Roy Shea) - * - * 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 - */ - -/* @makedep: mstask.inf */ -REGINST REGINST mstask.inf +1 WINE_REGISTRY mstask.rgs diff --git a/reactos/dll/win32/mstask/task.c b/reactos/dll/win32/mstask/task.c index 3815b19747f..97ae8b7b671 100644 --- a/reactos/dll/win32/mstask/task.c +++ b/reactos/dll/win32/mstask/task.c @@ -21,9 +21,27 @@ WINE_DEFAULT_DEBUG_CHANNEL(mstask); +typedef struct +{ + ITask ITask_iface; + IPersistFile IPersistFile_iface; + LONG ref; + LPWSTR taskName; + LPWSTR applicationName; + LPWSTR parameters; + LPWSTR comment; + DWORD maxRunTime; + LPWSTR accountName; +} TaskImpl; + +static inline TaskImpl *impl_from_ITask(ITask *iface) +{ + return CONTAINING_RECORD(iface, TaskImpl, ITask_iface); +} + static inline TaskImpl *impl_from_IPersistFile( IPersistFile *iface ) { - return (TaskImpl*) ((char*)(iface) - FIELD_OFFSET(TaskImpl, persistVtbl)); + return CONTAINING_RECORD(iface, TaskImpl, IPersistFile_iface); } static void TaskDestructor(TaskImpl *This) @@ -42,7 +60,7 @@ static HRESULT WINAPI MSTASK_ITask_QueryInterface( REFIID riid, void **ppvObject) { - TaskImpl * This = (TaskImpl *)iface; + TaskImpl * This = impl_from_ITask(iface); TRACE("IID: %s\n", debugstr_guid(riid)); if (ppvObject == NULL) @@ -51,13 +69,13 @@ static HRESULT WINAPI MSTASK_ITask_QueryInterface( if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_ITask)) { - *ppvObject = &This->lpVtbl; + *ppvObject = &This->ITask_iface; ITask_AddRef(iface); return S_OK; } else if (IsEqualGUID(riid, &IID_IPersistFile)) { - *ppvObject = &This->persistVtbl; + *ppvObject = &This->IPersistFile_iface; ITask_AddRef(iface); return S_OK; } @@ -70,7 +88,7 @@ static HRESULT WINAPI MSTASK_ITask_QueryInterface( static ULONG WINAPI MSTASK_ITask_AddRef( ITask* iface) { - TaskImpl *This = (TaskImpl *)iface; + TaskImpl *This = impl_from_ITask(iface); ULONG ref; TRACE("\n"); ref = InterlockedIncrement(&This->ref); @@ -80,7 +98,7 @@ static ULONG WINAPI MSTASK_ITask_AddRef( static ULONG WINAPI MSTASK_ITask_Release( ITask* iface) { - TaskImpl * This = (TaskImpl *)iface; + TaskImpl * This = impl_from_ITask(iface); ULONG ref; TRACE("\n"); ref = InterlockedDecrement(&This->ref); @@ -222,7 +240,7 @@ static HRESULT WINAPI MSTASK_ITask_SetComment( LPCWSTR pwszComment) { DWORD n; - TaskImpl *This = (TaskImpl *)iface; + TaskImpl *This = impl_from_ITask(iface); LPWSTR tmp_comment; TRACE("(%p, %s)\n", iface, debugstr_w(pwszComment)); @@ -252,7 +270,7 @@ static HRESULT WINAPI MSTASK_ITask_GetComment( LPWSTR *ppwszComment) { DWORD n; - TaskImpl *This = (TaskImpl *)iface; + TaskImpl *This = impl_from_ITask(iface); TRACE("(%p, %p)\n", iface, ppwszComment); @@ -357,7 +375,7 @@ static HRESULT WINAPI MSTASK_ITask_SetAccountInformation( LPCWSTR pwszPassword) { DWORD n; - TaskImpl *This = (TaskImpl *)iface; + TaskImpl *This = impl_from_ITask(iface); LPWSTR tmp_account_name; TRACE("(%p, %s, %s): partial stub\n", iface, debugstr_w(pwszAccountName), @@ -381,7 +399,7 @@ static HRESULT WINAPI MSTASK_ITask_GetAccountInformation( LPWSTR *ppwszAccountName) { DWORD n; - TaskImpl *This = (TaskImpl *)iface; + TaskImpl *This = impl_from_ITask(iface); TRACE("(%p, %p): partial stub\n", iface, ppwszAccountName); @@ -403,7 +421,7 @@ static HRESULT WINAPI MSTASK_ITask_SetApplicationName( LPCWSTR pwszApplicationName) { DWORD n; - TaskImpl *This = (TaskImpl *)iface; + TaskImpl *This = impl_from_ITask(iface); LPWSTR tmp_name; TRACE("(%p, %s)\n", iface, debugstr_w(pwszApplicationName)); @@ -450,7 +468,7 @@ static HRESULT WINAPI MSTASK_ITask_GetApplicationName( LPWSTR *ppwszApplicationName) { DWORD n; - TaskImpl *This = (TaskImpl *)iface; + TaskImpl *This = impl_from_ITask(iface); TRACE("(%p, %p)\n", iface, ppwszApplicationName); @@ -472,7 +490,7 @@ static HRESULT WINAPI MSTASK_ITask_SetParameters( LPCWSTR pwszParameters) { DWORD n; - TaskImpl *This = (TaskImpl *)iface; + TaskImpl *This = impl_from_ITask(iface); LPWSTR tmp_parameters; TRACE("(%p, %s)\n", iface, debugstr_w(pwszParameters)); @@ -501,7 +519,7 @@ static HRESULT WINAPI MSTASK_ITask_GetParameters( LPWSTR *ppwszParameters) { DWORD n; - TaskImpl *This = (TaskImpl *)iface; + TaskImpl *This = impl_from_ITask(iface); TRACE("(%p, %p)\n", iface, ppwszParameters); @@ -570,7 +588,7 @@ static HRESULT WINAPI MSTASK_ITask_SetMaxRunTime( ITask* iface, DWORD dwMaxRunTime) { - TaskImpl *This = (TaskImpl *)iface; + TaskImpl *This = impl_from_ITask(iface); TRACE("(%p, %d)\n", iface, dwMaxRunTime); @@ -582,7 +600,7 @@ static HRESULT WINAPI MSTASK_ITask_GetMaxRunTime( ITask* iface, DWORD *pdwMaxRunTime) { - TaskImpl *This = (TaskImpl *)iface; + TaskImpl *This = impl_from_ITask(iface); TRACE("(%p, %p)\n", iface, pdwMaxRunTime); @@ -597,7 +615,7 @@ static HRESULT WINAPI MSTASK_IPersistFile_QueryInterface( { TaskImpl *This = impl_from_IPersistFile(iface); TRACE("(%p, %s, %p)\n", iface, debugstr_guid(riid), ppvObject); - return ITask_QueryInterface((ITask *) This, riid, ppvObject); + return ITask_QueryInterface(&This->ITask_iface, riid, ppvObject); } static ULONG WINAPI MSTASK_IPersistFile_AddRef( @@ -746,8 +764,8 @@ HRESULT TaskConstructor(LPCWSTR pwszTaskName, LPVOID *ppObj) if (!This) return E_OUTOFMEMORY; - This->lpVtbl = &MSTASK_ITaskVtbl; - This->persistVtbl = &MSTASK_IPersistFileVtbl; + This->ITask_iface.lpVtbl = &MSTASK_ITaskVtbl; + This->IPersistFile_iface.lpVtbl = &MSTASK_IPersistFileVtbl; This->ref = 1; n = (lstrlenW(pwszTaskName) + 1) * sizeof(WCHAR); This->taskName = HeapAlloc(GetProcessHeap(), 0, n); @@ -765,7 +783,7 @@ HRESULT TaskConstructor(LPCWSTR pwszTaskName, LPVOID *ppObj) /* Default time is 3 days = 259200000 ms */ This->maxRunTime = 259200000; - *ppObj = &This->lpVtbl; + *ppObj = &This->ITask_iface; InterlockedIncrement(&dll_ref); return S_OK; } diff --git a/reactos/dll/win32/mstask/task_scheduler.c b/reactos/dll/win32/mstask/task_scheduler.c index 5efa0869b2e..1d2ac219cf8 100644 --- a/reactos/dll/win32/mstask/task_scheduler.c +++ b/reactos/dll/win32/mstask/task_scheduler.c @@ -22,6 +22,17 @@ WINE_DEFAULT_DEBUG_CHANNEL(mstask); +typedef struct +{ + ITaskScheduler ITaskScheduler_iface; + LONG ref; +} TaskSchedulerImpl; + +static inline TaskSchedulerImpl *impl_from_ITaskScheduler(ITaskScheduler *iface) +{ + return CONTAINING_RECORD(iface, TaskSchedulerImpl, ITaskScheduler_iface); +} + static void TaskSchedulerDestructor(TaskSchedulerImpl *This) { TRACE("%p\n", This); @@ -34,14 +45,14 @@ static HRESULT WINAPI MSTASK_ITaskScheduler_QueryInterface( REFIID riid, void **ppvObject) { - TaskSchedulerImpl * This = (TaskSchedulerImpl *)iface; + TaskSchedulerImpl * This = impl_from_ITaskScheduler(iface); TRACE("IID: %s\n", debugstr_guid(riid)); if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_ITaskScheduler)) { - *ppvObject = &This->lpVtbl; + *ppvObject = &This->ITaskScheduler_iface; ITaskScheduler_AddRef(iface); return S_OK; } @@ -53,7 +64,7 @@ static HRESULT WINAPI MSTASK_ITaskScheduler_QueryInterface( static ULONG WINAPI MSTASK_ITaskScheduler_AddRef( ITaskScheduler* iface) { - TaskSchedulerImpl *This = (TaskSchedulerImpl *)iface; + TaskSchedulerImpl *This = impl_from_ITaskScheduler(iface); TRACE("\n"); return InterlockedIncrement(&This->ref); } @@ -61,7 +72,7 @@ static ULONG WINAPI MSTASK_ITaskScheduler_AddRef( static ULONG WINAPI MSTASK_ITaskScheduler_Release( ITaskScheduler* iface) { - TaskSchedulerImpl * This = (TaskSchedulerImpl *)iface; + TaskSchedulerImpl * This = impl_from_ITaskScheduler(iface); ULONG ref; TRACE("\n"); ref = InterlockedDecrement(&This->ref); @@ -178,10 +189,10 @@ HRESULT TaskSchedulerConstructor(LPVOID *ppObj) if (!This) return E_OUTOFMEMORY; - This->lpVtbl = &MSTASK_ITaskSchedulerVtbl; + This->ITaskScheduler_iface.lpVtbl = &MSTASK_ITaskSchedulerVtbl; This->ref = 1; - *ppObj = &This->lpVtbl; + *ppObj = &This->ITaskScheduler_iface; InterlockedIncrement(&dll_ref); return S_OK; } diff --git a/reactos/dll/win32/mstask/task_trigger.c b/reactos/dll/win32/mstask/task_trigger.c index 3823ee79649..307a60540b5 100644 --- a/reactos/dll/win32/mstask/task_trigger.c +++ b/reactos/dll/win32/mstask/task_trigger.c @@ -23,12 +23,24 @@ WINE_DEFAULT_DEBUG_CHANNEL(mstask); +typedef struct +{ + ITaskTrigger ITaskTrigger_iface; + LONG ref; + TASK_TRIGGER triggerCond; +} TaskTriggerImpl; + +static inline TaskTriggerImpl *impl_from_ITaskTrigger(ITaskTrigger *iface) +{ + return CONTAINING_RECORD(iface, TaskTriggerImpl, ITaskTrigger_iface); +} + static HRESULT WINAPI MSTASK_ITaskTrigger_QueryInterface( ITaskTrigger* iface, REFIID riid, void **ppvObject) { - TaskTriggerImpl *This = (TaskTriggerImpl *)iface; + TaskTriggerImpl *This = impl_from_ITaskTrigger(iface); TRACE("IID: %s\n", debugstr_guid(riid)); if (ppvObject == NULL) @@ -37,7 +49,7 @@ static HRESULT WINAPI MSTASK_ITaskTrigger_QueryInterface( if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_ITaskTrigger)) { - *ppvObject = &This->lpVtbl; + *ppvObject = &This->ITaskTrigger_iface; ITaskTrigger_AddRef(iface); return S_OK; } @@ -50,7 +62,7 @@ static HRESULT WINAPI MSTASK_ITaskTrigger_QueryInterface( static ULONG WINAPI MSTASK_ITaskTrigger_AddRef( ITaskTrigger* iface) { - TaskTriggerImpl *This = (TaskTriggerImpl *)iface; + TaskTriggerImpl *This = impl_from_ITaskTrigger(iface); ULONG ref; TRACE("\n"); ref = InterlockedIncrement(&This->ref); @@ -60,7 +72,7 @@ static ULONG WINAPI MSTASK_ITaskTrigger_AddRef( static ULONG WINAPI MSTASK_ITaskTrigger_Release( ITaskTrigger* iface) { - TaskTriggerImpl *This = (TaskTriggerImpl *)iface; + TaskTriggerImpl *This = impl_from_ITaskTrigger(iface); ULONG ref; TRACE("\n"); ref = InterlockedDecrement(&This->ref); @@ -76,7 +88,7 @@ static HRESULT WINAPI MSTASK_ITaskTrigger_SetTrigger( ITaskTrigger* iface, const PTASK_TRIGGER pTrigger) { - TaskTriggerImpl * This = (TaskTriggerImpl *)iface; + TaskTriggerImpl * This = impl_from_ITaskTrigger(iface); TIME_FIELDS field_time; LARGE_INTEGER sys_time; TASK_TRIGGER tmp_trigger_cond; @@ -187,7 +199,7 @@ static HRESULT WINAPI MSTASK_ITaskTrigger_GetTrigger( ITaskTrigger* iface, PTASK_TRIGGER pTrigger) { - TaskTriggerImpl * This = (TaskTriggerImpl *)iface; + TaskTriggerImpl * This = impl_from_ITaskTrigger(iface); TRACE("(%p, %p)\n", iface, pTrigger); @@ -274,7 +286,7 @@ HRESULT TaskTriggerConstructor(LPVOID *ppObj) if (!This) return E_OUTOFMEMORY; - This->lpVtbl = &MSTASK_ITaskTriggerVtbl; + This->ITaskTrigger_iface.lpVtbl = &MSTASK_ITaskTriggerVtbl; This->ref = 1; /* Most fields of triggerCond default to zero. Initialize other @@ -291,7 +303,7 @@ HRESULT TaskTriggerConstructor(LPVOID *ppObj) This->triggerCond.TriggerType = TASK_TIME_TRIGGER_DAILY, This->triggerCond.Type.Daily.DaysInterval = 1; - *ppObj = &This->lpVtbl; + *ppObj = &This->ITaskTrigger_iface; InterlockedIncrement(&dll_ref); return S_OK; } diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index c0e1101a448..4d255369afb 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -110,7 +110,7 @@ reactos/dll/win32/msnet32 # Autosync reactos/dll/win32/msrle32 # Autosync reactos/dll/win32/mssign32 # Autosync reactos/dll/win32/mssip32 # Autosync -reactos/dll/win32/mstask # Autosync +reactos/dll/win32/mstask # Synced to Wine-1.3.37 reactos/dll/win32/msvcrt20 # Autosync reactos/dll/win32/msvfw32 # Autosync reactos/dll/win32/msvidc32 # Autosync