/* * Copyright 2005 Ulrich Czekalla (For CodeWeavers) * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef __WINE_WTSAPI32_H #define __WINE_WTSAPI32_H #ifdef __cplusplus extern "C" { #endif typedef enum tagWTS_INFO_CLASS { WTSInitialProgram, WTSApplicationName, WTSWorkingDirectory, WTSOEMId, WTSSessionId, WTSUserName, WTSWinStationName, WTSDomainName, WTSConnectState, WTSClientBuildNumber, WTSClientName, WTSClientDirectory, WTSClientProductId, WTSClientHardwareId, WTSClientAddress, WTSClientDisplay, WTSClientProtocolType, } WTS_INFO_CLASS; typedef enum _WTS_CONNECTSTATE_CLASS { WTSActive, WTSConnected, WTSConnectQuery, WTSShadow, WTSDisconnected, WTSIdle, WTSListen, WTSReset, WTSDown, WTSInit } WTS_CONNECTSTATE_CLASS; typedef struct _WTS_PROCESS_INFOA { DWORD SessionId; DWORD ProcessId; LPSTR pProcessName; PSID pUserSid; } WTS_PROCESS_INFOA, *PWTS_PROCESS_INFOA; typedef struct _WTS_PROCESS_INFOW { DWORD SessionId; DWORD ProcessId; LPWSTR pProcessName; PSID pUserSid; } WTS_PROCESS_INFOW, *PWTS_PROCESS_INFOW; typedef struct _WTS_SESSION_INFOA { DWORD SessionId; LPSTR pWinStationName; WTS_CONNECTSTATE_CLASS State; } WTS_SESSION_INFOA, *PWTS_SESSION_INFOA; typedef struct _WTS_SESSION_INFOW { DWORD SessionId; LPWSTR pWinStationName; WTS_CONNECTSTATE_CLASS State; } WTS_SESSION_INFOW, *PWTS_SESSION_INFOW; void WINAPI WTSCloseServer(HANDLE); BOOL WINAPI WTSDisconnectSession(HANDLE, DWORD, BOOL); BOOL WINAPI WTSEnumerateProcessesA(HANDLE, DWORD, DWORD, PWTS_PROCESS_INFOA *, DWORD *); BOOL WINAPI WTSEnumerateProcessesW(HANDLE, DWORD, DWORD, PWTS_PROCESS_INFOW *, DWORD *); #define WTSEnumerateProcesses WINELIB_NAME_AW(WTSEnumerateProcesses) BOOL WINAPI WTSEnumerateSessionsA(HANDLE, DWORD, DWORD, PWTS_SESSION_INFOA *, DWORD *); BOOL WINAPI WTSEnumerateSessionsW(HANDLE, DWORD, DWORD, PWTS_SESSION_INFOW *, DWORD *); #define WTSEnumerateSessions WINELIB_NAME_AW(WTSEnumerateSessions) BOOL WINAPI WTSQuerySessionInformationA(HANDLE, DWORD, WTS_INFO_CLASS, LPSTR *, DWORD *); BOOL WINAPI WTSQuerySessionInformationW(HANDLE, DWORD, WTS_INFO_CLASS, LPWSTR *, DWORD *); #define WTSQuerySessionInformation WINELIB_NAME_AW(WTSQuerySessionInformation) BOOL WINAPI WTSWaitSystemEvent(HANDLE, DWORD, DWORD*); #ifdef __cplusplus } #endif #endif