mirror of
https://github.com/reactos/reactos.git
synced 2025-04-21 20:50:29 +00:00
[MSTASK]
* Sync with Wine 1.7.1. CORE-7469 svn path=/trunk/; revision=60334
This commit is contained in:
parent
7882bfa033
commit
ee3382a831
6 changed files with 57 additions and 27 deletions
|
@ -1,10 +1,4 @@
|
||||||
|
|
||||||
remove_definitions(-DWINVER=0x502)
|
|
||||||
add_definitions(-DWINVER=0x600)
|
|
||||||
|
|
||||||
remove_definitions(-D_WIN32_WINNT=0x502)
|
|
||||||
add_definitions(-D_WIN32_WINNT=0x600)
|
|
||||||
|
|
||||||
add_definitions(-D__WINESRC__)
|
add_definitions(-D__WINESRC__)
|
||||||
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine)
|
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine)
|
||||||
generate_idl_iids(mstask_local.idl)
|
generate_idl_iids(mstask_local.idl)
|
||||||
|
@ -16,12 +10,11 @@ list(APPEND SOURCE
|
||||||
task.c
|
task.c
|
||||||
task_scheduler.c
|
task_scheduler.c
|
||||||
task_trigger.c
|
task_trigger.c
|
||||||
rsrc.rc
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/mstask_local_i.c
|
${CMAKE_CURRENT_BINARY_DIR}/mstask_local_i.c
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/mstask_stubs.c
|
${CMAKE_CURRENT_BINARY_DIR}/mstask_stubs.c
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/mstask.def)
|
${CMAKE_CURRENT_BINARY_DIR}/mstask.def)
|
||||||
|
|
||||||
add_library(mstask SHARED ${SOURCE})
|
add_library(mstask SHARED ${SOURCE} rsrc.rc)
|
||||||
set_module_type(mstask win32dll)
|
set_module_type(mstask win32dll)
|
||||||
target_link_libraries(mstask uuid wine)
|
target_link_libraries(mstask uuid wine)
|
||||||
add_importlibs(mstask ole32 msvcrt kernel32 ntdll)
|
add_importlibs(mstask ole32 msvcrt kernel32 ntdll)
|
||||||
|
|
|
@ -56,14 +56,14 @@ static HRESULT WINAPI MSTASK_IClassFactory_QueryInterface(
|
||||||
return E_NOINTERFACE;
|
return E_NOINTERFACE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI MSTASK_IClassFactory_AddRef(LPCLASSFACTORY iface)
|
static ULONG WINAPI MSTASK_IClassFactory_AddRef(IClassFactory *face)
|
||||||
{
|
{
|
||||||
TRACE("\n");
|
TRACE("\n");
|
||||||
InterlockedIncrement(&dll_ref);
|
InterlockedIncrement(&dll_ref);
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI MSTASK_IClassFactory_Release(LPCLASSFACTORY iface)
|
static ULONG WINAPI MSTASK_IClassFactory_Release(IClassFactory *iface)
|
||||||
{
|
{
|
||||||
TRACE("\n");
|
TRACE("\n");
|
||||||
InterlockedDecrement(&dll_ref);
|
InterlockedDecrement(&dll_ref);
|
||||||
|
@ -71,8 +71,8 @@ static ULONG WINAPI MSTASK_IClassFactory_Release(LPCLASSFACTORY iface)
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI MSTASK_IClassFactory_CreateInstance(
|
static HRESULT WINAPI MSTASK_IClassFactory_CreateInstance(
|
||||||
LPCLASSFACTORY iface,
|
IClassFactory *iface,
|
||||||
LPUNKNOWN pUnkOuter,
|
IUnknown *pUnkOuter,
|
||||||
REFIID riid,
|
REFIID riid,
|
||||||
LPVOID *ppvObj)
|
LPVOID *ppvObj)
|
||||||
{
|
{
|
||||||
|
@ -89,21 +89,21 @@ static HRESULT WINAPI MSTASK_IClassFactory_CreateInstance(
|
||||||
if (FAILED(res))
|
if (FAILED(res))
|
||||||
return res;
|
return res;
|
||||||
|
|
||||||
res = ITaskScheduler_QueryInterface(punk, riid, ppvObj);
|
res = IUnknown_QueryInterface(punk, riid, ppvObj);
|
||||||
ITaskScheduler_Release(punk);
|
IUnknown_Release(punk);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI MSTASK_IClassFactory_LockServer(
|
static HRESULT WINAPI MSTASK_IClassFactory_LockServer(
|
||||||
LPCLASSFACTORY iface,
|
IClassFactory *iface,
|
||||||
BOOL fLock)
|
BOOL fLock)
|
||||||
{
|
{
|
||||||
TRACE("\n");
|
TRACE("\n");
|
||||||
|
|
||||||
if (fLock != FALSE)
|
if (fLock)
|
||||||
MSTASK_IClassFactory_AddRef(iface);
|
IClassFactory_AddRef(iface);
|
||||||
else
|
else
|
||||||
MSTASK_IClassFactory_Release(iface);
|
IClassFactory_Release(iface);
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,8 +42,6 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
||||||
DisableThreadLibraryCalls(hinstDLL);
|
DisableThreadLibraryCalls(hinstDLL);
|
||||||
hInst = hinstDLL;
|
hInst = hinstDLL;
|
||||||
break;
|
break;
|
||||||
case DLL_PROCESS_DETACH:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
|
@ -89,16 +89,57 @@ static HRESULT WINAPI MSTASK_ITaskScheduler_SetTargetComputer(
|
||||||
ITaskScheduler* iface,
|
ITaskScheduler* iface,
|
||||||
LPCWSTR pwszComputer)
|
LPCWSTR pwszComputer)
|
||||||
{
|
{
|
||||||
FIXME("%p, %s: stub\n", iface, debugstr_w(pwszComputer));
|
TaskSchedulerImpl *This = impl_from_ITaskScheduler(iface);
|
||||||
return E_NOTIMPL;
|
WCHAR buffer[MAX_COMPUTERNAME_LENGTH + 3]; /* extra space for two '\' and a zero */
|
||||||
|
DWORD len = MAX_COMPUTERNAME_LENGTH + 1; /* extra space for a zero */
|
||||||
|
|
||||||
|
TRACE("(%p)->(%s)\n", This, debugstr_w(pwszComputer));
|
||||||
|
|
||||||
|
/* NULL is an alias for the local computer */
|
||||||
|
if (!pwszComputer)
|
||||||
|
return S_OK;
|
||||||
|
|
||||||
|
buffer[0] = '\\';
|
||||||
|
buffer[1] = '\\';
|
||||||
|
if (GetComputerNameW(buffer + 2, &len))
|
||||||
|
{
|
||||||
|
if (!lstrcmpiW(buffer, pwszComputer) || /* full unc name */
|
||||||
|
!lstrcmpiW(buffer + 2, pwszComputer)) /* name without backslash */
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
FIXME("remote computer %s not supported\n", debugstr_w(pwszComputer));
|
||||||
|
return HRESULT_FROM_WIN32(ERROR_BAD_NETPATH);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI MSTASK_ITaskScheduler_GetTargetComputer(
|
static HRESULT WINAPI MSTASK_ITaskScheduler_GetTargetComputer(
|
||||||
ITaskScheduler* iface,
|
ITaskScheduler* iface,
|
||||||
LPWSTR *ppwszComputer)
|
LPWSTR *ppwszComputer)
|
||||||
{
|
{
|
||||||
FIXME("%p, %p: stub\n", iface, ppwszComputer);
|
TaskSchedulerImpl *This = impl_from_ITaskScheduler(iface);
|
||||||
return E_NOTIMPL;
|
LPWSTR buffer;
|
||||||
|
DWORD len = MAX_COMPUTERNAME_LENGTH + 1; /* extra space for the zero */
|
||||||
|
|
||||||
|
TRACE("(%p)->(%p)\n", This, ppwszComputer);
|
||||||
|
|
||||||
|
if (!ppwszComputer)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
|
||||||
|
/* extra space for two '\' and a zero */
|
||||||
|
buffer = CoTaskMemAlloc((MAX_COMPUTERNAME_LENGTH + 3) * sizeof(WCHAR));
|
||||||
|
if (buffer)
|
||||||
|
{
|
||||||
|
buffer[0] = '\\';
|
||||||
|
buffer[1] = '\\';
|
||||||
|
if (GetComputerNameW(buffer + 2, &len))
|
||||||
|
{
|
||||||
|
*ppwszComputer = buffer;
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
CoTaskMemFree(buffer);
|
||||||
|
}
|
||||||
|
*ppwszComputer = NULL;
|
||||||
|
return HRESULT_FROM_WIN32(GetLastError());
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI MSTASK_ITaskScheduler_Enum(
|
static HRESULT WINAPI MSTASK_ITaskScheduler_Enum(
|
||||||
|
|
|
@ -142,8 +142,6 @@ static HRESULT WINAPI MSTASK_ITaskTrigger_SetTrigger(
|
||||||
if (pTrigger->MinutesDuration <= pTrigger->MinutesInterval &&
|
if (pTrigger->MinutesDuration <= pTrigger->MinutesInterval &&
|
||||||
pTrigger->MinutesInterval > 0)
|
pTrigger->MinutesInterval > 0)
|
||||||
return E_INVALIDARG;
|
return E_INVALIDARG;
|
||||||
if (pTrigger->MinutesDuration > 0 && pTrigger->MinutesInterval == 0)
|
|
||||||
return E_INVALIDARG;
|
|
||||||
tmp_trigger_cond.MinutesDuration = pTrigger->MinutesDuration;
|
tmp_trigger_cond.MinutesDuration = pTrigger->MinutesDuration;
|
||||||
tmp_trigger_cond.MinutesInterval = pTrigger->MinutesInterval;
|
tmp_trigger_cond.MinutesInterval = pTrigger->MinutesInterval;
|
||||||
|
|
||||||
|
|
|
@ -125,7 +125,7 @@ reactos/dll/win32/msnet32 # Synced to Wine-1.5.19
|
||||||
reactos/dll/win32/msrle32 # Synced to Wine-1.7.1
|
reactos/dll/win32/msrle32 # Synced to Wine-1.7.1
|
||||||
reactos/dll/win32/mssign32 # Synced to Wine-1.7.1
|
reactos/dll/win32/mssign32 # Synced to Wine-1.7.1
|
||||||
reactos/dll/win32/mssip32 # Synced to Wine-1.7.1
|
reactos/dll/win32/mssip32 # Synced to Wine-1.7.1
|
||||||
reactos/dll/win32/mstask # Synced to Wine-1.5.4
|
reactos/dll/win32/mstask # Synced to Wine-1.7.1
|
||||||
reactos/dll/win32/msvcrt20 # Out of sync
|
reactos/dll/win32/msvcrt20 # Out of sync
|
||||||
reactos/dll/win32/msvcrt40 # Out of sync
|
reactos/dll/win32/msvcrt40 # Out of sync
|
||||||
reactos/dll/win32/msvfw32 # Autosync
|
reactos/dll/win32/msvfw32 # Autosync
|
||||||
|
|
Loading…
Reference in a new issue