dinput: Avoid deadlock when CS are acquired in different order.
[wine.git] / include / wtsapi32.h
blobf329bd5cf068e5edbcd75f68989c807cd2ef969d
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 struct _WTS_PROCESS_INFOA
91 DWORD SessionId;
92 DWORD ProcessId;
93 LPSTR pProcessName;
94 PSID pUserSid;
95 } WTS_PROCESS_INFOA, *PWTS_PROCESS_INFOA;
97 typedef struct _WTS_PROCESS_INFOW
99 DWORD SessionId;
100 DWORD ProcessId;
101 LPWSTR pProcessName;
102 PSID pUserSid;
103 } WTS_PROCESS_INFOW, *PWTS_PROCESS_INFOW;
105 DECL_WINELIB_TYPE_AW(WTS_PROCESS_INFO)
106 DECL_WINELIB_TYPE_AW(PWTS_PROCESS_INFO)
108 typedef struct _WTS_SESSION_INFOA
110 DWORD SessionId;
111 LPSTR pWinStationName;
112 WTS_CONNECTSTATE_CLASS State;
113 } WTS_SESSION_INFOA, *PWTS_SESSION_INFOA;
115 typedef struct _WTS_SESSION_INFOW
117 DWORD SessionId;
118 LPWSTR pWinStationName;
119 WTS_CONNECTSTATE_CLASS State;
120 } WTS_SESSION_INFOW, *PWTS_SESSION_INFOW;
122 DECL_WINELIB_TYPE_AW(WTS_SESSION_INFO)
123 DECL_WINELIB_TYPE_AW(PWTS_SESSION_INFO)
125 typedef struct _WTS_SERVER_INFOA
127 LPSTR pServerName;
128 } WTS_SERVER_INFOA, *PWTS_SERVER_INFOA;
130 typedef struct _WTS_SERVER_INFOW
132 LPWSTR pServerName;
133 } WTS_SERVER_INFOW, *PWTS_SERVER_INFOW;
135 DECL_WINELIB_TYPE_AW(WTS_SERVER_INFO)
136 DECL_WINELIB_TYPE_AW(PWTS_SERVER_INFO)
138 #define WTS_CURRENT_SERVER_HANDLE ((HANDLE)NULL)
139 #define WTS_CURRENT_SESSION (~0u)
141 void WINAPI WTSCloseServer(HANDLE);
142 BOOL WINAPI WTSConnectSessionA(ULONG, ULONG, PSTR, BOOL);
143 BOOL WINAPI WTSConnectSessionW(ULONG, ULONG, PWSTR, BOOL);
144 #define WTSConnectSession WINELIB_NAME_AW(WTSConnectSession)
145 BOOL WINAPI WTSDisconnectSession(HANDLE, DWORD, BOOL);
146 BOOL WINAPI WTSEnableChildSessions(BOOL);
147 BOOL WINAPI WTSEnumerateProcessesA(HANDLE, DWORD, DWORD, PWTS_PROCESS_INFOA *, DWORD *);
148 BOOL WINAPI WTSEnumerateProcessesW(HANDLE, DWORD, DWORD, PWTS_PROCESS_INFOW *, DWORD *);
149 #define WTSEnumerateProcesses WINELIB_NAME_AW(WTSEnumerateProcesses)
150 BOOL WINAPI WTSEnumerateServersA( LPSTR, DWORD, DWORD, PWTS_SERVER_INFOA*, DWORD*);
151 BOOL WINAPI WTSEnumerateServersW( LPWSTR, DWORD, DWORD, PWTS_SERVER_INFOW*, DWORD*);
152 #define WTSEnumerateServers WINELIB_NAME_AW(WTSEnumerateServers)
153 BOOL WINAPI WTSEnumerateSessionsA(HANDLE, DWORD, DWORD, PWTS_SESSION_INFOA *, DWORD *);
154 BOOL WINAPI WTSEnumerateSessionsW(HANDLE, DWORD, DWORD, PWTS_SESSION_INFOW *, DWORD *);
155 #define WTSEnumerateSessions WINELIB_NAME_AW(WTSEnumerateSessions)
156 void WINAPI WTSFreeMemory(PVOID);
157 HANDLE WINAPI WTSOpenServerA(LPSTR);
158 HANDLE WINAPI WTSOpenServerW(LPWSTR);
159 #define WTSOpenServer WINELIB_NAME_AW(WTSOpenServer)
160 BOOL WINAPI WTSQuerySessionInformationA(HANDLE, DWORD, WTS_INFO_CLASS, LPSTR *, DWORD *);
161 BOOL WINAPI WTSQuerySessionInformationW(HANDLE, DWORD, WTS_INFO_CLASS, LPWSTR *, DWORD *);
162 #define WTSQuerySessionInformation WINELIB_NAME_AW(WTSQuerySessionInformation)
163 BOOL WINAPI WTSQueryUserConfigA(LPSTR,LPSTR,WTS_CONFIG_CLASS,LPSTR*,DWORD*);
164 BOOL WINAPI WTSQueryUserConfigW(LPWSTR,LPWSTR,WTS_CONFIG_CLASS,LPWSTR*,DWORD*);
165 #define WTSQueryUserConfig WINELIB_NAME_AW(WTSQueryUserConfig)
166 BOOL WINAPI WTSQueryUserToken(ULONG, PHANDLE);
167 BOOL WINAPI WTSRegisterSessionNotification(HWND, DWORD);
168 BOOL WINAPI WTSRegisterSessionNotificationEx(HANDLE, HWND, DWORD);
169 BOOL WINAPI WTSStartRemoteControlSessionA(LPSTR, ULONG, BYTE, USHORT);
170 BOOL WINAPI WTSStartRemoteControlSessionW(LPWSTR, ULONG, BYTE, USHORT);
171 #define WTSStartRemoteControlSession WINELIB_NAME_AW(WTSStartRemoteControlSession)
172 BOOL WINAPI WTSStopRemoteControlSession(ULONG);
173 BOOL WINAPI WTSTerminateProcess(HANDLE, DWORD, DWORD);
174 BOOL WINAPI WTSUnRegisterSessionNotification(HWND);
175 BOOL WINAPI WTSUnRegisterSessionNotificationEx(HANDLE, HWND);
176 BOOL WINAPI WTSWaitSystemEvent(HANDLE, DWORD, DWORD*);
178 #ifdef __cplusplus
180 #endif
182 #endif