|  | /* | 
|  | * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, 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 enum _WTS_CONFIG_CLASS | 
|  | { | 
|  | WTSUserConfigInitialProgram, | 
|  | WTSUserConfigWorkingDirectory, | 
|  | WTSUserConfigInheritInitialProgram, | 
|  | WTSUserConfigAllowLogonTerminalServer, | 
|  | WTSUserConfigTimeoutSettingsConnections, | 
|  | WTSUserConfigTimeoutSettingsDisconnections, | 
|  | WTSUserConfigTimeoutSettingsIdle, | 
|  | WTSUserConfigDeviceClientDrives, | 
|  | WTSUserConfigDeviceClientPrinters, | 
|  | WTSUserConfigDeviceClientDefaultPrinter, | 
|  | WTSUserConfigBrokenTimeoutSettings, | 
|  | WTSUserConfigModemCallbackSettings, | 
|  | WTSUserConfigModemCallbackPhoneNumber, | 
|  | WTSUserConfigShadowSettings, | 
|  | WTSUserConfigTerminalServerProfilePath, | 
|  | WTSUserConfigTerminalServerHomeDirectory, | 
|  | WTSUserConfigfTerminalServerRemoteHomeDir | 
|  | } WTS_CONFIG_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; | 
|  |  | 
|  | DECL_WINELIB_TYPE_AW(WTS_PROCESS_INFO) | 
|  | DECL_WINELIB_TYPE_AW(PWTS_PROCESS_INFO) | 
|  |  | 
|  | 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; | 
|  |  | 
|  | DECL_WINELIB_TYPE_AW(WTS_SESSION_INFO) | 
|  | DECL_WINELIB_TYPE_AW(PWTS_SESSION_INFO) | 
|  |  | 
|  | typedef struct _WTS_SERVER_INFOA | 
|  | { | 
|  | LPSTR pServerName; | 
|  | } WTS_SERVER_INFOA, *PWTS_SERVER_INFOA; | 
|  |  | 
|  | typedef struct _WTS_SERVER_INFOW | 
|  | { | 
|  | LPWSTR pServerName; | 
|  | } WTS_SERVER_INFOW, *PWTS_SERVER_INFOW; | 
|  |  | 
|  | DECL_WINELIB_TYPE_AW(WTS_SERVER_INFO) | 
|  | DECL_WINELIB_TYPE_AW(PWTS_SERVER_INFO) | 
|  |  | 
|  | 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 WTSEnumerateServersA( LPSTR, DWORD, DWORD, PWTS_SERVER_INFOA*, DWORD*); | 
|  | BOOL WINAPI WTSEnumerateServersW( LPWSTR, DWORD, DWORD, PWTS_SERVER_INFOW*, DWORD*); | 
|  | #define     WTSEnumerateServers WINELIB_NAME_AW(WTSEnumerateServers) | 
|  | 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) | 
|  | void WINAPI WTSFreeMemory(PVOID); | 
|  | HANDLE WINAPI WTSOpenServerA(LPSTR); | 
|  | HANDLE WINAPI WTSOpenServerW(LPWSTR); | 
|  | #define     WTSOpenServer WINELIB_NAME_AW(WTSOpenServer) | 
|  | 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 WTSQueryUserConfigA(LPSTR,LPSTR,WTS_CONFIG_CLASS,LPSTR*,DWORD*); | 
|  | BOOL WINAPI WTSQueryUserConfigW(LPWSTR,LPWSTR,WTS_CONFIG_CLASS,LPWSTR*,DWORD*); | 
|  | #define     WTSQueryUserConfig WINELIB_NAME_AW(WTSQueryUserConfig) | 
|  | BOOL WINAPI WTSQueryUserToken(ULONG, PHANDLE); | 
|  | BOOL WINAPI WTSRegisterSessionNotification(HWND, DWORD); | 
|  | BOOL WINAPI WTSRegisterSessionNotificationEx(HANDLE, HWND, DWORD); | 
|  | BOOL WINAPI WTSTerminateProcess(HANDLE, DWORD, DWORD); | 
|  | BOOL WINAPI WTSUnRegisterSessionNotification(HWND); | 
|  | BOOL WINAPI WTSUnRegisterSessionNotificationEx(HANDLE, HWND); | 
|  | BOOL WINAPI WTSWaitSystemEvent(HANDLE, DWORD, DWORD*); | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif |