ieframe: Check for null before dereferencing it (coverity).
[wine.git] / include / wtsapi32.h
blobf4bab56635e26bc39ccf33663bf103b924e7c6a9
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 void WINAPI WTSCloseServer(HANDLE);
139 BOOL WINAPI WTSConnectSessionA(ULONG, ULONG, PSTR, BOOL);
140 BOOL WINAPI WTSConnectSessionW(ULONG, ULONG, PWSTR, BOOL);
141 #define WTSConnectSession WINELIB_NAME_AW(WTSConnectSession)
142 BOOL WINAPI WTSDisconnectSession(HANDLE, DWORD, BOOL);
143 BOOL WINAPI WTSEnumerateProcessesA(HANDLE, DWORD, DWORD, PWTS_PROCESS_INFOA *, DWORD *);
144 BOOL WINAPI WTSEnumerateProcessesW(HANDLE, DWORD, DWORD, PWTS_PROCESS_INFOW *, DWORD *);
145 #define WTSEnumerateProcesses WINELIB_NAME_AW(WTSEnumerateProcesses)
146 BOOL WINAPI WTSEnumerateServersA( LPSTR, DWORD, DWORD, PWTS_SERVER_INFOA*, DWORD*);
147 BOOL WINAPI WTSEnumerateServersW( LPWSTR, DWORD, DWORD, PWTS_SERVER_INFOW*, DWORD*);
148 #define WTSEnumerateServers WINELIB_NAME_AW(WTSEnumerateServers)
149 BOOL WINAPI WTSEnumerateSessionsA(HANDLE, DWORD, DWORD, PWTS_SESSION_INFOA *, DWORD *);
150 BOOL WINAPI WTSEnumerateSessionsW(HANDLE, DWORD, DWORD, PWTS_SESSION_INFOW *, DWORD *);
151 #define WTSEnumerateSessions WINELIB_NAME_AW(WTSEnumerateSessions)
152 void WINAPI WTSFreeMemory(PVOID);
153 HANDLE WINAPI WTSOpenServerA(LPSTR);
154 HANDLE WINAPI WTSOpenServerW(LPWSTR);
155 #define WTSOpenServer WINELIB_NAME_AW(WTSOpenServer)
156 BOOL WINAPI WTSQuerySessionInformationA(HANDLE, DWORD, WTS_INFO_CLASS, LPSTR *, DWORD *);
157 BOOL WINAPI WTSQuerySessionInformationW(HANDLE, DWORD, WTS_INFO_CLASS, LPWSTR *, DWORD *);
158 #define WTSQuerySessionInformation WINELIB_NAME_AW(WTSQuerySessionInformation)
159 BOOL WINAPI WTSQueryUserConfigA(LPSTR,LPSTR,WTS_CONFIG_CLASS,LPSTR*,DWORD*);
160 BOOL WINAPI WTSQueryUserConfigW(LPWSTR,LPWSTR,WTS_CONFIG_CLASS,LPWSTR*,DWORD*);
161 #define WTSQueryUserConfig WINELIB_NAME_AW(WTSQueryUserConfig)
162 BOOL WINAPI WTSQueryUserToken(ULONG, PHANDLE);
163 BOOL WINAPI WTSRegisterSessionNotification(HWND, DWORD);
164 BOOL WINAPI WTSRegisterSessionNotificationEx(HANDLE, HWND, DWORD);
165 BOOL WINAPI WTSStartRemoteControlSessionA(LPSTR, ULONG, BYTE, USHORT);
166 BOOL WINAPI WTSStartRemoteControlSessionW(LPWSTR, ULONG, BYTE, USHORT);
167 #define WTSStartRemoteControlSession WINELIB_NAME_AW(WTSStartRemoteControlSession)
168 BOOL WINAPI WTSStopRemoteControlSession(ULONG);
169 BOOL WINAPI WTSTerminateProcess(HANDLE, DWORD, DWORD);
170 BOOL WINAPI WTSUnRegisterSessionNotification(HWND);
171 BOOL WINAPI WTSUnRegisterSessionNotificationEx(HANDLE, HWND);
172 BOOL WINAPI WTSWaitSystemEvent(HANDLE, DWORD, DWORD*);
174 #ifdef __cplusplus
176 #endif
178 #endif