2005-01-24 20:42:02 +01:00
|
|
|
/* Copyright 2005 Ulrich Czekalla
|
|
|
|
*
|
|
|
|
* 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
|
2006-05-18 14:49:52 +02:00
|
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
2005-01-24 20:42:02 +01:00
|
|
|
*/
|
|
|
|
|
|
|
|
#include "config.h"
|
|
|
|
#include <stdarg.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include "windef.h"
|
|
|
|
#include "winbase.h"
|
|
|
|
#include "wtsapi32.h"
|
|
|
|
#include "wine/debug.h"
|
|
|
|
|
|
|
|
WINE_DEFAULT_DEBUG_CHANNEL(wtsapi);
|
|
|
|
|
|
|
|
HMODULE WTSAPI32_hModule = 0;
|
|
|
|
|
|
|
|
BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
|
|
|
{
|
2006-10-06 23:02:04 +02:00
|
|
|
TRACE("%p,%x,%p\n", hinstDLL, fdwReason, lpvReserved);
|
2005-01-24 20:42:02 +01:00
|
|
|
|
|
|
|
switch (fdwReason) {
|
|
|
|
case DLL_PROCESS_ATTACH:
|
|
|
|
{
|
|
|
|
DisableThreadLibraryCalls(hinstDLL);
|
|
|
|
WTSAPI32_hModule = hinstDLL;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case DLL_PROCESS_DETACH:
|
|
|
|
{
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return TRUE;
|
|
|
|
}
|
|
|
|
|
2005-03-16 12:27:05 +01:00
|
|
|
/************************************************************
|
|
|
|
* WTSCloseServer (WTSAPI32.@)
|
|
|
|
*/
|
|
|
|
void WINAPI WTSCloseServer(HANDLE hServer)
|
|
|
|
{
|
|
|
|
FIXME("Stub %p\n", hServer);
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************
|
|
|
|
* WTSDisconnectSession (WTSAPI32.@)
|
|
|
|
*/
|
|
|
|
BOOL WINAPI WTSDisconnectSession(HANDLE hServer, DWORD SessionId, BOOL bWait)
|
|
|
|
{
|
2006-10-06 23:02:04 +02:00
|
|
|
FIXME("Stub %p 0x%08x %d\n", hServer, SessionId, bWait);
|
2005-03-24 16:08:48 +01:00
|
|
|
return TRUE;
|
2005-03-16 12:27:05 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************
|
|
|
|
* WTSEnumerateProcessesA (WTSAPI32.@)
|
|
|
|
*/
|
|
|
|
BOOL WINAPI WTSEnumerateProcessesA(HANDLE hServer, DWORD Reserved, DWORD Version,
|
|
|
|
PWTS_PROCESS_INFOA* ppProcessInfo, DWORD* pCount)
|
|
|
|
{
|
2006-10-06 23:02:04 +02:00
|
|
|
FIXME("Stub %p 0x%08x 0x%08x %p %p\n", hServer, Reserved, Version,
|
2005-03-16 12:27:05 +01:00
|
|
|
ppProcessInfo, pCount);
|
2005-03-24 16:08:48 +01:00
|
|
|
|
|
|
|
if (!ppProcessInfo || !pCount) return FALSE;
|
|
|
|
|
|
|
|
*pCount = 0;
|
|
|
|
*ppProcessInfo = NULL;
|
|
|
|
|
|
|
|
return TRUE;
|
2005-03-16 12:27:05 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************
|
|
|
|
* WTSEnumerateProcessesW (WTSAPI32.@)
|
|
|
|
*/
|
|
|
|
BOOL WINAPI WTSEnumerateProcessesW(HANDLE hServer, DWORD Reserved, DWORD Version,
|
|
|
|
PWTS_PROCESS_INFOW* ppProcessInfo, DWORD* pCount)
|
|
|
|
{
|
2006-10-06 23:02:04 +02:00
|
|
|
FIXME("Stub %p 0x%08x 0x%08x %p %p\n", hServer, Reserved, Version,
|
2005-03-16 12:27:05 +01:00
|
|
|
ppProcessInfo, pCount);
|
2005-03-24 16:08:48 +01:00
|
|
|
|
|
|
|
if (!ppProcessInfo || !pCount) return FALSE;
|
|
|
|
|
|
|
|
*pCount = 0;
|
|
|
|
*ppProcessInfo = NULL;
|
|
|
|
|
|
|
|
return TRUE;
|
2005-03-16 12:27:05 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************
|
|
|
|
* WTSEnumerateEnumerateSessionsA (WTSAPI32.@)
|
|
|
|
*/
|
2005-03-21 11:32:45 +01:00
|
|
|
BOOL WINAPI WTSEnumerateSessionsA(HANDLE hServer, DWORD Reserved, DWORD Version,
|
2005-03-16 12:27:05 +01:00
|
|
|
PWTS_SESSION_INFOA* ppSessionInfo, DWORD* pCount)
|
|
|
|
{
|
2006-10-06 23:02:04 +02:00
|
|
|
FIXME("Stub %p 0x%08x 0x%08x %p %p\n", hServer, Reserved, Version,
|
2005-03-16 12:27:05 +01:00
|
|
|
ppSessionInfo, pCount);
|
2005-03-24 16:08:48 +01:00
|
|
|
|
|
|
|
if (!ppSessionInfo || !pCount) return FALSE;
|
|
|
|
|
|
|
|
*pCount = 0;
|
|
|
|
*ppSessionInfo = NULL;
|
|
|
|
|
|
|
|
return TRUE;
|
2005-03-16 12:27:05 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************
|
|
|
|
* WTSEnumerateEnumerateSessionsW (WTSAPI32.@)
|
|
|
|
*/
|
2005-03-21 11:32:45 +01:00
|
|
|
BOOL WINAPI WTSEnumerateSessionsW(HANDLE hServer, DWORD Reserved, DWORD Version,
|
2005-03-16 12:27:05 +01:00
|
|
|
PWTS_SESSION_INFOW* ppSessionInfo, DWORD* pCount)
|
|
|
|
{
|
2006-10-06 23:02:04 +02:00
|
|
|
FIXME("Stub %p 0x%08x 0x%08x %p %p\n", hServer, Reserved, Version,
|
2005-03-16 12:27:05 +01:00
|
|
|
ppSessionInfo, pCount);
|
2005-03-24 16:08:48 +01:00
|
|
|
|
|
|
|
if (!ppSessionInfo || !pCount) return FALSE;
|
|
|
|
|
|
|
|
*pCount = 0;
|
|
|
|
*ppSessionInfo = NULL;
|
|
|
|
|
|
|
|
return TRUE;
|
2005-03-16 12:27:05 +01:00
|
|
|
}
|
|
|
|
|
2005-04-19 14:00:29 +02:00
|
|
|
/************************************************************
|
|
|
|
* WTSFreeMemory (WTSAPI32.@)
|
|
|
|
*/
|
|
|
|
void WINAPI WTSFreeMemory(PVOID pMemory)
|
|
|
|
{
|
|
|
|
FIXME("Stub %p\n", pMemory);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2006-08-05 00:17:39 +02:00
|
|
|
/************************************************************
|
|
|
|
* WTSOpenServerA (WTSAPI32.@)
|
|
|
|
*/
|
|
|
|
HANDLE WINAPI WTSOpenServerA(LPSTR pServerName)
|
|
|
|
{
|
|
|
|
FIXME("(%s) stub\n", debugstr_a(pServerName));
|
|
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************
|
|
|
|
* WTSOpenServerW (WTSAPI32.@)
|
|
|
|
*/
|
|
|
|
HANDLE WINAPI WTSOpenServerW(LPWSTR pServerName)
|
|
|
|
{
|
|
|
|
FIXME("(%s) stub\n", debugstr_w(pServerName));
|
|
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
2005-03-16 12:27:05 +01:00
|
|
|
/************************************************************
|
|
|
|
* WTSQuerySessionInformationA (WTSAPI32.@)
|
|
|
|
*/
|
|
|
|
BOOL WINAPI WTSQuerySessionInformationA(
|
|
|
|
HANDLE hServer,
|
|
|
|
DWORD SessionId,
|
|
|
|
WTS_INFO_CLASS WTSInfoClass,
|
|
|
|
LPSTR* Buffer,
|
|
|
|
DWORD* BytesReturned)
|
|
|
|
{
|
|
|
|
/* FIXME: Forward request to winsta.dll::WinStationQueryInformationA */
|
2006-10-06 23:02:04 +02:00
|
|
|
FIXME("Stub %p 0x%08x %d %p %p\n", hServer, SessionId, WTSInfoClass,
|
2005-03-16 12:27:05 +01:00
|
|
|
Buffer, BytesReturned);
|
|
|
|
|
|
|
|
return FALSE;
|
|
|
|
}
|
2005-01-24 20:42:02 +01:00
|
|
|
|
|
|
|
/************************************************************
|
|
|
|
* WTSQuerySessionInformationW (WTSAPI32.@)
|
|
|
|
*/
|
|
|
|
BOOL WINAPI WTSQuerySessionInformationW(
|
|
|
|
HANDLE hServer,
|
|
|
|
DWORD SessionId,
|
|
|
|
WTS_INFO_CLASS WTSInfoClass,
|
|
|
|
LPWSTR* Buffer,
|
|
|
|
DWORD* BytesReturned)
|
|
|
|
{
|
|
|
|
/* FIXME: Forward request to winsta.dll::WinStationQueryInformationW */
|
2006-10-06 23:02:04 +02:00
|
|
|
FIXME("Stub %p 0x%08x %d %p %p\n", hServer, SessionId, WTSInfoClass,
|
2005-01-24 20:42:02 +01:00
|
|
|
Buffer, BytesReturned);
|
|
|
|
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************
|
|
|
|
* WTSWaitSystemEvent (WTSAPI32.@)
|
|
|
|
*/
|
|
|
|
BOOL WINAPI WTSWaitSystemEvent(HANDLE hServer, DWORD Mask, DWORD* Flags)
|
|
|
|
{
|
|
|
|
/* FIXME: Forward request to winsta.dll::WinStationWaitSystemEvent */
|
2006-10-06 23:02:04 +02:00
|
|
|
FIXME("Stub %p 0x%08x %p\n", hServer, Mask, Flags);
|
2005-01-24 20:42:02 +01:00
|
|
|
return FALSE;
|
|
|
|
}
|