includes: Fix alignment for 64-bits
[wine/wine64.git] / include / wtsapi32.h
blobe875111f191c193049ea37f85d9ab745d42634eb
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 tagWTS_INFO_CLASS
29 WTSInitialProgram,
30 WTSApplicationName,
31 WTSWorkingDirectory,
32 WTSOEMId,
33 WTSSessionId,
34 WTSUserName,
35 WTSWinStationName,
36 WTSDomainName,
37 WTSConnectState,
38 WTSClientBuildNumber,
39 WTSClientName,
40 WTSClientDirectory,
41 WTSClientProductId,
42 WTSClientHardwareId,
43 WTSClientAddress,
44 WTSClientDisplay,
45 WTSClientProtocolType,
46 } WTS_INFO_CLASS;
48 typedef enum _WTS_CONNECTSTATE_CLASS
50 WTSActive,
51 WTSConnected,
52 WTSConnectQuery,
53 WTSShadow,
54 WTSDisconnected,
55 WTSIdle,
56 WTSListen,
57 WTSReset,
58 WTSDown,
59 WTSInit
60 } WTS_CONNECTSTATE_CLASS;
62 typedef enum _WTS_CONFIG_CLASS
64 WTSUserConfigInitialProgram,
65 WTSUserConfigWorkingDirectory,
66 WTSUserConfigInheritInitialProgram,
67 WTSUserConfigAllowLogonTerminalServer,
68 WTSUserConfigTimeoutSettingsConnections,
69 WTSUserConfigTimeoutSettingsDisconnections,
70 WTSUserConfigTimeoutSettingsIdle,
71 WTSUserConfigDeviceClientDrives,
72 WTSUserConfigDeviceClientPrinters,
73 WTSUserConfigDeviceClientDefaultPrinter,
74 WTSUserConfigBrokenTimeoutSettings,
75 WTSUserConfigModemCallbackSettings,
76 WTSUserConfigModemCallbackPhoneNumber,
77 WTSUserConfigShadowSettings,
78 WTSUserConfigTerminalServerProfilePath,
79 WTSUserConfigTerminalServerHomeDirectory,
80 WTSUserConfigfTerminalServerRemoteHomeDir
81 } WTS_CONFIG_CLASS;
83 typedef struct _WTS_PROCESS_INFOA
85 DWORD SessionId;
86 DWORD ProcessId;
87 LPSTR pProcessName;
88 PSID pUserSid;
89 } WTS_PROCESS_INFOA, *PWTS_PROCESS_INFOA;
91 typedef struct _WTS_PROCESS_INFOW
93 DWORD SessionId;
94 DWORD ProcessId;
95 LPWSTR pProcessName;
96 PSID pUserSid;
97 } WTS_PROCESS_INFOW, *PWTS_PROCESS_INFOW;
99 DECL_WINELIB_TYPE_AW(WTS_PROCESS_INFO)
100 DECL_WINELIB_TYPE_AW(PWTS_PROCESS_INFO)
102 typedef struct _WTS_SESSION_INFOA
104 DWORD SessionId;
105 LPSTR pWinStationName;
106 WTS_CONNECTSTATE_CLASS State;
107 } WTS_SESSION_INFOA, *PWTS_SESSION_INFOA;
109 typedef struct _WTS_SESSION_INFOW
111 DWORD SessionId;
112 LPWSTR pWinStationName;
113 WTS_CONNECTSTATE_CLASS State;
114 } WTS_SESSION_INFOW, *PWTS_SESSION_INFOW;
116 DECL_WINELIB_TYPE_AW(WTS_SESSION_INFO)
117 DECL_WINELIB_TYPE_AW(PWTS_SESSION_INFO)
119 typedef struct _WTS_SERVER_INFOA
121 LPSTR pServerName;
122 } WTS_SERVER_INFOA, *PWTS_SERVER_INFOA;
124 typedef struct _WTS_SERVER_INFOW
126 LPWSTR pServerName;
127 } WTS_SERVER_INFOW, *PWTS_SERVER_INFOW;
129 DECL_WINELIB_TYPE_AW(WTS_SERVER_INFO)
130 DECL_WINELIB_TYPE_AW(PWTS_SERVER_INFO)
132 void WINAPI WTSCloseServer(HANDLE);
133 BOOL WINAPI WTSDisconnectSession(HANDLE, DWORD, BOOL);
134 BOOL WINAPI WTSEnumerateProcessesA(HANDLE, DWORD, DWORD, PWTS_PROCESS_INFOA *, DWORD *);
135 BOOL WINAPI WTSEnumerateProcessesW(HANDLE, DWORD, DWORD, PWTS_PROCESS_INFOW *, DWORD *);
136 #define WTSEnumerateProcesses WINELIB_NAME_AW(WTSEnumerateProcesses)
137 BOOL WINAPI WTSEnumerateServersA( LPSTR, DWORD, DWORD, PWTS_SERVER_INFOA*, DWORD*);
138 BOOL WINAPI WTSEnumerateServersW( LPWSTR, DWORD, DWORD, PWTS_SERVER_INFOW*, DWORD*);
139 #define WTSEnumerateServers WINELIB_NAME_AW(WTSEnumerateServers)
140 BOOL WINAPI WTSEnumerateSessionsA(HANDLE, DWORD, DWORD, PWTS_SESSION_INFOA *, DWORD *);
141 BOOL WINAPI WTSEnumerateSessionsW(HANDLE, DWORD, DWORD, PWTS_SESSION_INFOW *, DWORD *);
142 #define WTSEnumerateSessions WINELIB_NAME_AW(WTSEnumerateSessions)
143 void WINAPI WTSFreeMemory(PVOID);
144 HANDLE WINAPI WTSOpenServerA(LPSTR);
145 HANDLE WINAPI WTSOpenServerW(LPWSTR);
146 #define WTSOpenServer WINELIB_NAME_AW(WTSOpenServer)
147 BOOL WINAPI WTSQuerySessionInformationA(HANDLE, DWORD, WTS_INFO_CLASS, LPSTR *, DWORD *);
148 BOOL WINAPI WTSQuerySessionInformationW(HANDLE, DWORD, WTS_INFO_CLASS, LPWSTR *, DWORD *);
149 #define WTSQuerySessionInformation WINELIB_NAME_AW(WTSQuerySessionInformation)
150 BOOL WINAPI WTSQueryUserConfigA(LPSTR,LPSTR,WTS_CONFIG_CLASS,LPSTR*,DWORD*);
151 BOOL WINAPI WTSQueryUserConfigW(LPWSTR,LPWSTR,WTS_CONFIG_CLASS,LPWSTR*,DWORD*);
152 #define WTSQueryUserConfig WINELIB_NAME_AW(WTSQueryUserConfig)
153 BOOL WINAPI WTSQueryUserToken(ULONG, PHANDLE);
154 BOOL WINAPI WTSRegisterSessionNotification(HWND, DWORD);
155 BOOL WINAPI WTSRegisterSessionNotificationEx(HANDLE, HWND, DWORD);
156 BOOL WINAPI WTSTerminateProcess(HANDLE, DWORD, DWORD);
157 BOOL WINAPI WTSUnRegisterSessionNotification(HWND);
158 BOOL WINAPI WTSUnRegisterSessionNotificationEx(HANDLE, HWND);
159 BOOL WINAPI WTSWaitSystemEvent(HANDLE, DWORD, DWORD*);
161 #ifdef __cplusplus
163 #endif
165 #endif