2 * Copyright 2005 Ulrich Czekalla (For CodeWeavers)
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef __WINE_WTSAPI32_H
20 #define __WINE_WTSAPI32_H
27 * pResponse values from WTSSendMessage(), in addition
28 * to those from the standard MessageBox() API.
31 #define IDTIMEOUT 32000
37 typedef enum _WTS_VIRTUAL_CLASS
43 typedef enum tagWTS_INFO_CLASS
61 WTSClientProtocolType
,
77 typedef enum _WTS_CONNECTSTATE_CLASS
89 } WTS_CONNECTSTATE_CLASS
;
91 typedef enum _WTS_CONFIG_CLASS
93 WTSUserConfigInitialProgram
,
94 WTSUserConfigWorkingDirectory
,
95 WTSUserConfigInheritInitialProgram
,
96 WTSUserConfigAllowLogonTerminalServer
,
97 WTSUserConfigTimeoutSettingsConnections
,
98 WTSUserConfigTimeoutSettingsDisconnections
,
99 WTSUserConfigTimeoutSettingsIdle
,
100 WTSUserConfigDeviceClientDrives
,
101 WTSUserConfigDeviceClientPrinters
,
102 WTSUserConfigDeviceClientDefaultPrinter
,
103 WTSUserConfigBrokenTimeoutSettings
,
104 WTSUserConfigModemCallbackSettings
,
105 WTSUserConfigModemCallbackPhoneNumber
,
106 WTSUserConfigShadowSettings
,
107 WTSUserConfigTerminalServerProfilePath
,
108 WTSUserConfigTerminalServerHomeDirectory
,
109 WTSUserConfigfTerminalServerRemoteHomeDir
112 typedef struct _WTS_PROCESS_INFOA
118 } WTS_PROCESS_INFOA
, *PWTS_PROCESS_INFOA
;
120 typedef struct _WTS_PROCESS_INFOW
126 } WTS_PROCESS_INFOW
, *PWTS_PROCESS_INFOW
;
128 DECL_WINELIB_TYPE_AW(WTS_PROCESS_INFO
)
129 DECL_WINELIB_TYPE_AW(PWTS_PROCESS_INFO
)
131 typedef struct _WTS_SESSION_INFOA
134 LPSTR pWinStationName
;
135 WTS_CONNECTSTATE_CLASS State
;
136 } WTS_SESSION_INFOA
, *PWTS_SESSION_INFOA
;
138 typedef struct _WTS_SESSION_INFOW
141 LPWSTR pWinStationName
;
142 WTS_CONNECTSTATE_CLASS State
;
143 } WTS_SESSION_INFOW
, *PWTS_SESSION_INFOW
;
145 DECL_WINELIB_TYPE_AW(WTS_SESSION_INFO
)
146 DECL_WINELIB_TYPE_AW(PWTS_SESSION_INFO
)
148 typedef struct _WTS_SERVER_INFOA
151 } WTS_SERVER_INFOA
, *PWTS_SERVER_INFOA
;
153 typedef struct _WTS_SERVER_INFOW
156 } WTS_SERVER_INFOW
, *PWTS_SERVER_INFOW
;
158 DECL_WINELIB_TYPE_AW(WTS_SERVER_INFO
)
159 DECL_WINELIB_TYPE_AW(PWTS_SERVER_INFO
)
161 #define WTS_CURRENT_SERVER_HANDLE ((HANDLE)NULL)
163 void WINAPI
WTSCloseServer(HANDLE
);
164 BOOL WINAPI
WTSConnectSessionA(ULONG
, ULONG
, PSTR
, BOOL
);
165 BOOL WINAPI
WTSConnectSessionW(ULONG
, ULONG
, PWSTR
, BOOL
);
166 #define WTSConnectSession WINELIB_NAME_AW(WTSConnectSession)
167 BOOL WINAPI
WTSDisconnectSession(HANDLE
, DWORD
, BOOL
);
168 BOOL WINAPI
WTSEnumerateProcessesA(HANDLE
, DWORD
, DWORD
, PWTS_PROCESS_INFOA
*, DWORD
*);
169 BOOL WINAPI
WTSEnumerateProcessesW(HANDLE
, DWORD
, DWORD
, PWTS_PROCESS_INFOW
*, DWORD
*);
170 #define WTSEnumerateProcesses WINELIB_NAME_AW(WTSEnumerateProcesses)
171 BOOL WINAPI
WTSEnumerateServersA( LPSTR
, DWORD
, DWORD
, PWTS_SERVER_INFOA
*, DWORD
*);
172 BOOL WINAPI
WTSEnumerateServersW( LPWSTR
, DWORD
, DWORD
, PWTS_SERVER_INFOW
*, DWORD
*);
173 #define WTSEnumerateServers WINELIB_NAME_AW(WTSEnumerateServers)
174 BOOL WINAPI
WTSEnumerateSessionsA(HANDLE
, DWORD
, DWORD
, PWTS_SESSION_INFOA
*, DWORD
*);
175 BOOL WINAPI
WTSEnumerateSessionsW(HANDLE
, DWORD
, DWORD
, PWTS_SESSION_INFOW
*, DWORD
*);
176 #define WTSEnumerateSessions WINELIB_NAME_AW(WTSEnumerateSessions)
177 void WINAPI
WTSFreeMemory(PVOID
);
178 HANDLE WINAPI
WTSOpenServerA(LPSTR
);
179 HANDLE WINAPI
WTSOpenServerW(LPWSTR
);
180 #define WTSOpenServer WINELIB_NAME_AW(WTSOpenServer)
181 BOOL WINAPI
WTSQuerySessionInformationA(HANDLE
, DWORD
, WTS_INFO_CLASS
, LPSTR
*, DWORD
*);
182 BOOL WINAPI
WTSQuerySessionInformationW(HANDLE
, DWORD
, WTS_INFO_CLASS
, LPWSTR
*, DWORD
*);
183 #define WTSQuerySessionInformation WINELIB_NAME_AW(WTSQuerySessionInformation)
184 BOOL WINAPI
WTSQueryUserConfigA(LPSTR
,LPSTR
,WTS_CONFIG_CLASS
,LPSTR
*,DWORD
*);
185 BOOL WINAPI
WTSQueryUserConfigW(LPWSTR
,LPWSTR
,WTS_CONFIG_CLASS
,LPWSTR
*,DWORD
*);
186 #define WTSQueryUserConfig WINELIB_NAME_AW(WTSQueryUserConfig)
187 BOOL WINAPI
WTSQueryUserToken(ULONG
, PHANDLE
);
188 BOOL WINAPI
WTSRegisterSessionNotification(HWND
, DWORD
);
189 BOOL WINAPI
WTSRegisterSessionNotificationEx(HANDLE
, HWND
, DWORD
);
190 BOOL WINAPI
WTSStartRemoteControlSessionA(LPSTR
, ULONG
, BYTE
, USHORT
);
191 BOOL WINAPI
WTSStartRemoteControlSessionW(LPWSTR
, ULONG
, BYTE
, USHORT
);
192 #define WTSStartRemoteControlSession WINELIB_NAME_AW(WTSStartRemoteControlSession)
193 BOOL WINAPI
WTSStopRemoteControlSession(ULONG
);
194 BOOL WINAPI
WTSTerminateProcess(HANDLE
, DWORD
, DWORD
);
195 BOOL WINAPI
WTSUnRegisterSessionNotification(HWND
);
196 BOOL WINAPI
WTSUnRegisterSessionNotificationEx(HANDLE
, HWND
);
197 BOOL WINAPI
WTSWaitSystemEvent(HANDLE
, DWORD
, DWORD
*);