* Sync with Wine 1.7.1.
CORE-7469

svn path=/trunk/; revision=60334
This commit is contained in:
Amine Khaldi 2013-09-23 11:33:50 +00:00
parent 7882bfa033
commit ee3382a831
6 changed files with 57 additions and 27 deletions

View file

@ -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__)
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine)
generate_idl_iids(mstask_local.idl)
@ -16,12 +10,11 @@ list(APPEND SOURCE
task.c
task_scheduler.c
task_trigger.c
rsrc.rc
${CMAKE_CURRENT_BINARY_DIR}/mstask_local_i.c
${CMAKE_CURRENT_BINARY_DIR}/mstask_stubs.c
${CMAKE_CURRENT_BINARY_DIR}/mstask.def)
add_library(mstask SHARED ${SOURCE})
add_library(mstask SHARED ${SOURCE} rsrc.rc)
set_module_type(mstask win32dll)
target_link_libraries(mstask uuid wine)
add_importlibs(mstask ole32 msvcrt kernel32 ntdll)

View file

@ -56,14 +56,14 @@ static HRESULT WINAPI MSTASK_IClassFactory_QueryInterface(
return E_NOINTERFACE;
}
static ULONG WINAPI MSTASK_IClassFactory_AddRef(LPCLASSFACTORY iface)
static ULONG WINAPI MSTASK_IClassFactory_AddRef(IClassFactory *face)
{
TRACE("\n");
InterlockedIncrement(&dll_ref);
return 2;
}
static ULONG WINAPI MSTASK_IClassFactory_Release(LPCLASSFACTORY iface)
static ULONG WINAPI MSTASK_IClassFactory_Release(IClassFactory *iface)
{
TRACE("\n");
InterlockedDecrement(&dll_ref);
@ -71,8 +71,8 @@ static ULONG WINAPI MSTASK_IClassFactory_Release(LPCLASSFACTORY iface)
}
static HRESULT WINAPI MSTASK_IClassFactory_CreateInstance(
LPCLASSFACTORY iface,
LPUNKNOWN pUnkOuter,
IClassFactory *iface,
IUnknown *pUnkOuter,
REFIID riid,
LPVOID *ppvObj)
{
@ -89,21 +89,21 @@ static HRESULT WINAPI MSTASK_IClassFactory_CreateInstance(
if (FAILED(res))
return res;
res = ITaskScheduler_QueryInterface(punk, riid, ppvObj);
ITaskScheduler_Release(punk);
res = IUnknown_QueryInterface(punk, riid, ppvObj);
IUnknown_Release(punk);
return res;
}
static HRESULT WINAPI MSTASK_IClassFactory_LockServer(
LPCLASSFACTORY iface,
IClassFactory *iface,
BOOL fLock)
{
TRACE("\n");
if (fLock != FALSE)
MSTASK_IClassFactory_AddRef(iface);
if (fLock)
IClassFactory_AddRef(iface);
else
MSTASK_IClassFactory_Release(iface);
IClassFactory_Release(iface);
return S_OK;
}

View file

@ -42,8 +42,6 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
DisableThreadLibraryCalls(hinstDLL);
hInst = hinstDLL;
break;
case DLL_PROCESS_DETACH:
break;
}
return TRUE;

View file

@ -89,16 +89,57 @@ static HRESULT WINAPI MSTASK_ITaskScheduler_SetTargetComputer(
ITaskScheduler* iface,
LPCWSTR pwszComputer)
{
FIXME("%p, %s: stub\n", iface, debugstr_w(pwszComputer));
return E_NOTIMPL;
TaskSchedulerImpl *This = impl_from_ITaskScheduler(iface);
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(
ITaskScheduler* iface,
LPWSTR *ppwszComputer)
{
FIXME("%p, %p: stub\n", iface, ppwszComputer);
return E_NOTIMPL;
TaskSchedulerImpl *This = impl_from_ITaskScheduler(iface);
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(

View file

@ -142,8 +142,6 @@ static HRESULT WINAPI MSTASK_ITaskTrigger_SetTrigger(
if (pTrigger->MinutesDuration <= pTrigger->MinutesInterval &&
pTrigger->MinutesInterval > 0)
return E_INVALIDARG;
if (pTrigger->MinutesDuration > 0 && pTrigger->MinutesInterval == 0)
return E_INVALIDARG;
tmp_trigger_cond.MinutesDuration = pTrigger->MinutesDuration;
tmp_trigger_cond.MinutesInterval = pTrigger->MinutesInterval;

View file

@ -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/mssign32 # 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/msvcrt40 # Out of sync
reactos/dll/win32/msvfw32 # Autosync