tasklist: Add basic functionality.
[wine.git] / include / wtsapi32.h
blob1bd5b6cd791f0da0b12fe501661e5b82f691c9a3
1 /*
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
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
27 typedef enum _WTS_VIRTUAL_CLASS
29 WTSVirtualClientData,
30 WTSVirtualFileHandle
31 } WTS_VIRTUAL_CLASS;
33 typedef enum tagWTS_INFO_CLASS
35 WTSInitialProgram,
36 WTSApplicationName,
37 WTSWorkingDirectory,
38 WTSOEMId,
39 WTSSessionId,
40 WTSUserName,
41 WTSWinStationName,
42 WTSDomainName,
43 WTSConnectState,
44 WTSClientBuildNumber,
45 WTSClientName,
46 WTSClientDirectory,
47 WTSClientProductId,
48 WTSClientHardwareId,
49 WTSClientAddress,
50 WTSClientDisplay,
51 WTSClientProtocolType,
52 } WTS_INFO_CLASS;
54 typedef enum _WTS_CONNECTSTATE_CLASS
56 WTSActive,
57 WTSConnected,
58 WTSConnectQuery,
59 WTSShadow,
60 WTSDisconnected,
61 WTSIdle,
62 WTSListen,
63 WTSReset,
64 WTSDown,
65 WTSInit
66 } WTS_CONNECTSTATE_CLASS;
68 typedef enum _WTS_CONFIG_CLASS
70 WTSUserConfigInitialProgram,
71 WTSUserConfigWorkingDirectory,
72 WTSUserConfigInheritInitialProgram,
73 WTSUserConfigAllowLogonTerminalServer,
74 WTSUserConfigTimeoutSettingsConnections,
75 WTSUserConfigTimeoutSettingsDisconnections,
76 WTSUserConfigTimeoutSettingsIdle,
77 WTSUserConfigDeviceClientDrives,
78 WTSUserConfigDeviceClientPrinters,
79 WTSUserConfigDeviceClientDefaultPrinter,
80 WTSUserConfigBrokenTimeoutSettings,
81 WTSUserConfigModemCallbackSettings,
82 WTSUserConfigModemCallbackPhoneNumber,
83 WTSUserConfigShadowSettings,
84 WTSUserConfigTerminalServerProfilePath,
85 WTSUserConfigTerminalServerHomeDirectory,
86 WTSUserConfigfTerminalServerRemoteHomeDir
87 } WTS_CONFIG_CLASS;
89 typedef enum _WTS_TYPE_CLASS
91 WTSTypeProcessInfoLevel0,
92 WTSTypeProcessInfoLevel1,
93 WTSTypeSessionInfoLevel1
94 } WTS_TYPE_CLASS;
96 typedef struct _WTS_PROCESS_INFOA
98 DWORD SessionId;
99 DWORD ProcessId;
100 LPSTR pProcessName;
101 PSID pUserSid;
102 } WTS_PROCESS_INFOA, *PWTS_PROCESS_INFOA;
104 typedef struct _WTS_PROCESS_INFOW
106 DWORD SessionId;
107 DWORD ProcessId;
108 LPWSTR pProcessName;
109 PSID pUserSid;
110 } WTS_PROCESS_INFOW, *PWTS_PROCESS_INFOW;
112 DECL_WINELIB_TYPE_AW(WTS_PROCESS_INFO)
113 DECL_WINELIB_TYPE_AW(PWTS_PROCESS_INFO)
115 typedef struct _WTS_SESSION_INFOA
117 DWORD SessionId;
118 LPSTR pWinStationName;
119 WTS_CONNECTSTATE_CLASS State;
120 } WTS_SESSION_INFOA, *PWTS_SESSION_INFOA;
122 typedef struct _WTS_SESSION_INFOW
124 DWORD SessionId;
125 LPWSTR pWinStationName;
126 WTS_CONNECTSTATE_CLASS State;
127 } WTS_SESSION_INFOW, *PWTS_SESSION_INFOW;
129 DECL_WINELIB_TYPE_AW(WTS_SESSION_INFO)
130 DECL_WINELIB_TYPE_AW(PWTS_SESSION_INFO)
132 typedef struct _WTS_SESSION_INFO_1A
134 DWORD ExecEnvId;
135 WTS_CONNECTSTATE_CLASS State;
136 DWORD SessionId;
137 char *pSessionName;
138 char *pHostName;
139 char *pUserName;
140 char *pDomainName;
141 char *pFarmName;
142 } WTS_SESSION_INFO_1A, *PWTS_SESSION_INFO_1A;
144 typedef struct _WTS_SESSION_INFO_1W
146 DWORD ExecEnvId;
147 WTS_CONNECTSTATE_CLASS State;
148 DWORD SessionId;
149 WCHAR *pSessionName;
150 WCHAR *pHostName;
151 WCHAR *pUserName;
152 WCHAR *pDomainName;
153 WCHAR *pFarmName;
154 } WTS_SESSION_INFO_1W, *PWTS_SESSION_INFO_1W;
156 DECL_WINELIB_TYPE_AW(WTS_SESSION_INFO_1)
157 DECL_WINELIB_TYPE_AW(PWTS_SESSION_INFO_1)
159 typedef struct _WTS_SERVER_INFOA
161 LPSTR pServerName;
162 } WTS_SERVER_INFOA, *PWTS_SERVER_INFOA;
164 typedef struct _WTS_SERVER_INFOW
166 LPWSTR pServerName;
167 } WTS_SERVER_INFOW, *PWTS_SERVER_INFOW;
169 DECL_WINELIB_TYPE_AW(WTS_SERVER_INFO)
170 DECL_WINELIB_TYPE_AW(PWTS_SERVER_INFO)
172 #define WTS_CURRENT_SERVER_HANDLE ((HANDLE)NULL)
173 #define WTS_CURRENT_SESSION (~0u)
174 #define WTS_ANY_SESSION ((DWORD)-2)
176 void WINAPI WTSCloseServer(HANDLE);
177 BOOL WINAPI WTSConnectSessionA(ULONG, ULONG, PSTR, BOOL);
178 BOOL WINAPI WTSConnectSessionW(ULONG, ULONG, PWSTR, BOOL);
179 #define WTSConnectSession WINELIB_NAME_AW(WTSConnectSession)
180 BOOL WINAPI WTSDisconnectSession(HANDLE, DWORD, BOOL);
181 BOOL WINAPI WTSEnableChildSessions(BOOL);
182 BOOL WINAPI WTSEnumerateProcessesA(HANDLE, DWORD, DWORD, PWTS_PROCESS_INFOA *, DWORD *);
183 BOOL WINAPI WTSEnumerateProcessesW(HANDLE, DWORD, DWORD, PWTS_PROCESS_INFOW *, DWORD *);
184 #define WTSEnumerateProcesses WINELIB_NAME_AW(WTSEnumerateProcesses)
185 BOOL WINAPI WTSEnumerateServersA( LPSTR, DWORD, DWORD, PWTS_SERVER_INFOA*, DWORD*);
186 BOOL WINAPI WTSEnumerateServersW( LPWSTR, DWORD, DWORD, PWTS_SERVER_INFOW*, DWORD*);
187 #define WTSEnumerateServers WINELIB_NAME_AW(WTSEnumerateServers)
188 BOOL WINAPI WTSEnumerateSessionsA(HANDLE, DWORD, DWORD, PWTS_SESSION_INFOA *, DWORD *);
189 BOOL WINAPI WTSEnumerateSessionsW(HANDLE, DWORD, DWORD, PWTS_SESSION_INFOW *, DWORD *);
190 #define WTSEnumerateSessions WINELIB_NAME_AW(WTSEnumerateSessions)
191 void WINAPI WTSFreeMemory(PVOID);
192 HANDLE WINAPI WTSOpenServerA(LPSTR);
193 HANDLE WINAPI WTSOpenServerW(LPWSTR);
194 #define WTSOpenServer WINELIB_NAME_AW(WTSOpenServer)
195 BOOL WINAPI WTSQuerySessionInformationA(HANDLE, DWORD, WTS_INFO_CLASS, LPSTR *, DWORD *);
196 BOOL WINAPI WTSQuerySessionInformationW(HANDLE, DWORD, WTS_INFO_CLASS, LPWSTR *, DWORD *);
197 #define WTSQuerySessionInformation WINELIB_NAME_AW(WTSQuerySessionInformation)
198 BOOL WINAPI WTSQueryUserConfigA(LPSTR,LPSTR,WTS_CONFIG_CLASS,LPSTR*,DWORD*);
199 BOOL WINAPI WTSQueryUserConfigW(LPWSTR,LPWSTR,WTS_CONFIG_CLASS,LPWSTR*,DWORD*);
200 #define WTSQueryUserConfig WINELIB_NAME_AW(WTSQueryUserConfig)
201 BOOL WINAPI WTSQueryUserToken(ULONG, PHANDLE);
202 BOOL WINAPI WTSRegisterSessionNotification(HWND, DWORD);
203 BOOL WINAPI WTSRegisterSessionNotificationEx(HANDLE, HWND, DWORD);
204 BOOL WINAPI WTSStartRemoteControlSessionA(LPSTR, ULONG, BYTE, USHORT);
205 BOOL WINAPI WTSStartRemoteControlSessionW(LPWSTR, ULONG, BYTE, USHORT);
206 #define WTSStartRemoteControlSession WINELIB_NAME_AW(WTSStartRemoteControlSession)
207 BOOL WINAPI WTSStopRemoteControlSession(ULONG);
208 BOOL WINAPI WTSTerminateProcess(HANDLE, DWORD, DWORD);
209 BOOL WINAPI WTSUnRegisterSessionNotification(HWND);
210 BOOL WINAPI WTSUnRegisterSessionNotificationEx(HANDLE, HWND);
211 BOOL WINAPI WTSWaitSystemEvent(HANDLE, DWORD, DWORD*);
213 #ifdef __cplusplus
215 #endif
217 #endif