File Annotation

Not logged in
9b639cf2d6 2015-05-05        kinaba: /***********************************************************************\
9b639cf2d6 2015-05-05        kinaba: *                               wtsapi32.d                              *
9b639cf2d6 2015-05-05        kinaba: *                                                                       *
9b639cf2d6 2015-05-05        kinaba: *                       Windows API header module                       *
9b639cf2d6 2015-05-05        kinaba: *                                                                       *
9b639cf2d6 2015-05-05        kinaba: *                     Translated from MinGW-w64 API                     *
9b639cf2d6 2015-05-05        kinaba: *                                                                       *
9b639cf2d6 2015-05-05        kinaba: *                       Placed into public domain                       *
9b639cf2d6 2015-05-05        kinaba: \***********************************************************************/
9b639cf2d6 2015-05-05        kinaba: module win32.wtsapi32;
9b639cf2d6 2015-05-05        kinaba: pragma(lib, "wtsapi32");
9b639cf2d6 2015-05-05        kinaba: private import win32.w32api;
9b639cf2d6 2015-05-05        kinaba: import win32.windef;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum {
9b639cf2d6 2015-05-05        kinaba: 	WTS_CURRENT_SERVER        = null,
9b639cf2d6 2015-05-05        kinaba: 	WTS_CURRENT_SERVER_HANDLE = null,
9b639cf2d6 2015-05-05        kinaba: 	WTS_CURRENT_SERVER_NAME   = null
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum DWORD WTS_CURRENT_SESSION = cast(DWORD) -1;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum {
9b639cf2d6 2015-05-05        kinaba: 	IDTIMEOUT = 32000,
9b639cf2d6 2015-05-05        kinaba: 	IDASYNC   = 32001
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum {
9b639cf2d6 2015-05-05        kinaba: 	WTS_WSD_LOGOFF     = 0x01,
9b639cf2d6 2015-05-05        kinaba: 	WTS_WSD_SHUTDOWN   = 0x02,
9b639cf2d6 2015-05-05        kinaba: 	WTS_WSD_REBOOT     = 0x04,
9b639cf2d6 2015-05-05        kinaba: 	WTS_WSD_POWEROFF   = 0x08,
9b639cf2d6 2015-05-05        kinaba: 	WTS_WSD_FASTREBOOT = 0x10
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum WTS_CONNECTSTATE_CLASS {
9b639cf2d6 2015-05-05        kinaba: 	WTSActive,
9b639cf2d6 2015-05-05        kinaba: 	WTSConnected,
9b639cf2d6 2015-05-05        kinaba: 	WTSConnectQuery,
9b639cf2d6 2015-05-05        kinaba: 	WTSShadow,
9b639cf2d6 2015-05-05        kinaba: 	WTSDisconnected,
9b639cf2d6 2015-05-05        kinaba: 	WTSIdle,
9b639cf2d6 2015-05-05        kinaba: 	WTSListen,
9b639cf2d6 2015-05-05        kinaba: 	WTSReset,
9b639cf2d6 2015-05-05        kinaba: 	WTSDown,
9b639cf2d6 2015-05-05        kinaba: 	WTSInit
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct WTS_SERVER_INFOW {
9b639cf2d6 2015-05-05        kinaba: 	LPWSTR pServerName;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: alias WTS_SERVER_INFOW* PWTS_SERVER_INFOW;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct WTS_SERVER_INFOA {
9b639cf2d6 2015-05-05        kinaba: 	LPSTR pServerName;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: alias WTS_SERVER_INFOA* PWTS_SERVER_INFOA;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: version(Unicode) {
9b639cf2d6 2015-05-05        kinaba: 	alias WTS_SERVER_INFOW  WTS_SERVER_INFO;
9b639cf2d6 2015-05-05        kinaba: 	alias PWTS_SERVER_INFOW PWTS_SERVER_INFO;
9b639cf2d6 2015-05-05        kinaba: } else {
9b639cf2d6 2015-05-05        kinaba: 	alias WTS_SERVER_INFOA  WTS_SERVER_INFO;
9b639cf2d6 2015-05-05        kinaba: 	alias PWTS_SERVER_INFOA PWTS_SERVER_INFO;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct WTS_SESSION_INFOW {
9b639cf2d6 2015-05-05        kinaba: 	DWORD SessionId;
9b639cf2d6 2015-05-05        kinaba: 	LPWSTR pWinStationName;
9b639cf2d6 2015-05-05        kinaba: 	WTS_CONNECTSTATE_CLASS State;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: alias WTS_SESSION_INFOW* PWTS_SESSION_INFOW;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct WTS_SESSION_INFOA {
9b639cf2d6 2015-05-05        kinaba: 	DWORD SessionId;
9b639cf2d6 2015-05-05        kinaba: 	LPSTR pWinStationName;
9b639cf2d6 2015-05-05        kinaba: 	WTS_CONNECTSTATE_CLASS State;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: alias WTS_SESSION_INFOA* PWTS_SESSION_INFOA;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: version(Unicode) {
9b639cf2d6 2015-05-05        kinaba: 	alias WTS_SESSION_INFOW  WTS_SESSION_INFO;
9b639cf2d6 2015-05-05        kinaba: 	alias PWTS_SESSION_INFOW PWTS_SESSION_INFO;
9b639cf2d6 2015-05-05        kinaba: } else {
9b639cf2d6 2015-05-05        kinaba: 	alias WTS_SESSION_INFOA  WTS_SESSION_INFO;
9b639cf2d6 2015-05-05        kinaba: 	alias PWTS_SESSION_INFOA PWTS_SESSION_INFO;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct WTS_PROCESS_INFOW {
9b639cf2d6 2015-05-05        kinaba: 	DWORD SessionId;
9b639cf2d6 2015-05-05        kinaba: 	DWORD ProcessId;
9b639cf2d6 2015-05-05        kinaba: 	LPWSTR pProcessName;
9b639cf2d6 2015-05-05        kinaba: 	PSID pUserSid;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: alias WTS_PROCESS_INFOW* PWTS_PROCESS_INFOW;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct WTS_PROCESS_INFOA {
9b639cf2d6 2015-05-05        kinaba: 	DWORD SessionId;
9b639cf2d6 2015-05-05        kinaba: 	DWORD ProcessId;
9b639cf2d6 2015-05-05        kinaba: 	LPSTR pProcessName;
9b639cf2d6 2015-05-05        kinaba: 	PSID pUserSid;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: alias WTS_PROCESS_INFOA* PWTS_PROCESS_INFOA;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: version(Unicode) {
9b639cf2d6 2015-05-05        kinaba: 	alias WTS_PROCESS_INFOW  WTS_PROCESS_INFO;
9b639cf2d6 2015-05-05        kinaba: 	alias PWTS_PROCESS_INFOW PWTS_PROCESS_INFO;
9b639cf2d6 2015-05-05        kinaba: } else {
9b639cf2d6 2015-05-05        kinaba: 	alias WTS_PROCESS_INFOA  WTS_PROCESS_INFO;
9b639cf2d6 2015-05-05        kinaba: 	alias PWTS_PROCESS_INFOA PWTS_PROCESS_INFO;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum {
9b639cf2d6 2015-05-05        kinaba: 	WTS_PROTOCOL_TYPE_CONSOLE,
9b639cf2d6 2015-05-05        kinaba: 	WTS_PROTOCOL_TYPE_ICA,
9b639cf2d6 2015-05-05        kinaba: 	WTS_PROTOCOL_TYPE_RDP
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum WTS_INFO_CLASS {
9b639cf2d6 2015-05-05        kinaba: 	WTSInitialProgram,
9b639cf2d6 2015-05-05        kinaba: 	WTSApplicationName,
9b639cf2d6 2015-05-05        kinaba: 	WTSWorkingDirectory,
9b639cf2d6 2015-05-05        kinaba: 	WTSOEMId,
9b639cf2d6 2015-05-05        kinaba: 	WTSSessionId,
9b639cf2d6 2015-05-05        kinaba: 	WTSUserName,
9b639cf2d6 2015-05-05        kinaba: 	WTSWinStationName,
9b639cf2d6 2015-05-05        kinaba: 	WTSDomainName,
9b639cf2d6 2015-05-05        kinaba: 	WTSConnectState,
9b639cf2d6 2015-05-05        kinaba: 	WTSClientBuildNumber,
9b639cf2d6 2015-05-05        kinaba: 	WTSClientName,
9b639cf2d6 2015-05-05        kinaba: 	WTSClientDirectory,
9b639cf2d6 2015-05-05        kinaba: 	WTSClientProductId,
9b639cf2d6 2015-05-05        kinaba: 	WTSClientHardwareId,
9b639cf2d6 2015-05-05        kinaba: 	WTSClientAddress,
9b639cf2d6 2015-05-05        kinaba: 	WTSClientDisplay,
9b639cf2d6 2015-05-05        kinaba: 	WTSClientProtocolType,
9b639cf2d6 2015-05-05        kinaba: 	WTSIdleTime,
9b639cf2d6 2015-05-05        kinaba: 	WTSLogonTime,
9b639cf2d6 2015-05-05        kinaba: 	WTSIncomingBytes,
9b639cf2d6 2015-05-05        kinaba: 	WTSOutgoingBytes,
9b639cf2d6 2015-05-05        kinaba: 	WTSIncomingFrames,
9b639cf2d6 2015-05-05        kinaba: 	WTSOutgoingFrames,
9b639cf2d6 2015-05-05        kinaba: 	WTSClientInfo,
9b639cf2d6 2015-05-05        kinaba: 	WTSSessionInfo, // = 24
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct WTS_CLIENT_ADDRESS {
9b639cf2d6 2015-05-05        kinaba: 	DWORD    AddressFamily;
9b639cf2d6 2015-05-05        kinaba: 	BYTE[20] Address;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: alias WTS_CLIENT_ADDRESS* PWTS_CLIENT_ADDRESS;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: struct WTS_CLIENT_DISPLAY {
9b639cf2d6 2015-05-05        kinaba: 	DWORD HorizontalResolution;
9b639cf2d6 2015-05-05        kinaba: 	DWORD VerticalResolution;
9b639cf2d6 2015-05-05        kinaba: 	DWORD ColorDepth;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: alias WTS_CLIENT_DISPLAY* PWTS_CLIENT_DISPLAY;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum WTS_CONFIG_CLASS {
9b639cf2d6 2015-05-05        kinaba: 	WTSUserConfigInitialProgram,
9b639cf2d6 2015-05-05        kinaba: 	WTSUserConfigWorkingDirectory,
9b639cf2d6 2015-05-05        kinaba: 	WTSUserConfigfInheritInitialProgram,
9b639cf2d6 2015-05-05        kinaba: 	WTSUserConfigfAllowLogonTerminalServer,
9b639cf2d6 2015-05-05        kinaba: 	WTSUserConfigTimeoutSettingsConnections,
9b639cf2d6 2015-05-05        kinaba: 	WTSUserConfigTimeoutSettingsDisconnections,
9b639cf2d6 2015-05-05        kinaba: 	WTSUserConfigTimeoutSettingsIdle,
9b639cf2d6 2015-05-05        kinaba: 	WTSUserConfigfDeviceClientDrives,
9b639cf2d6 2015-05-05        kinaba: 	WTSUserConfigfDeviceClientPrinters,
9b639cf2d6 2015-05-05        kinaba: 	WTSUserConfigfDeviceClientDefaultPrinter,
9b639cf2d6 2015-05-05        kinaba: 	WTSUserConfigBrokenTimeoutSettings,
9b639cf2d6 2015-05-05        kinaba: 	WTSUserConfigReconnectSettings,
9b639cf2d6 2015-05-05        kinaba: 	WTSUserConfigModemCallbackSettings,
9b639cf2d6 2015-05-05        kinaba: 	WTSUserConfigModemCallbackPhoneNumber,
9b639cf2d6 2015-05-05        kinaba: 	WTSUserConfigShadowingSettings,
9b639cf2d6 2015-05-05        kinaba: 	WTSUserConfigTerminalServerProfilePath,
9b639cf2d6 2015-05-05        kinaba: 	WTSUserConfigTerminalServerHomeDir,
9b639cf2d6 2015-05-05        kinaba: 	WTSUserConfigTerminalServerHomeDirDrive,
9b639cf2d6 2015-05-05        kinaba: 	WTSUserConfigfTerminalServerRemoteHomeDir
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum {
9b639cf2d6 2015-05-05        kinaba: 	WTS_EVENT_NONE        = 0x0,
9b639cf2d6 2015-05-05        kinaba: 	WTS_EVENT_CREATE      = 0x1,
9b639cf2d6 2015-05-05        kinaba: 	WTS_EVENT_DELETE      = 0x2,
9b639cf2d6 2015-05-05        kinaba: 	WTS_EVENT_RENAME      = 0x4,
9b639cf2d6 2015-05-05        kinaba: 	WTS_EVENT_CONNECT     = 0x8,
9b639cf2d6 2015-05-05        kinaba: 	WTS_EVENT_DISCONNECT  = 0x10,
9b639cf2d6 2015-05-05        kinaba: 	WTS_EVENT_LOGON       = 0x20,
9b639cf2d6 2015-05-05        kinaba: 	WTS_EVENT_LOGOFF      = 0x40,
9b639cf2d6 2015-05-05        kinaba: 	WTS_EVENT_STATECHANGE = 0x80,
9b639cf2d6 2015-05-05        kinaba: 	WTS_EVENT_LICENSE     = 0x100,
9b639cf2d6 2015-05-05        kinaba: 	WTS_EVENT_ALL         = 0x7fffffff,
9b639cf2d6 2015-05-05        kinaba: 	WTS_EVENT_FLUSH       = 0x80000000
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum WTS_VIRTUAL_CLASS {
9b639cf2d6 2015-05-05        kinaba: 	WTSVirtualClientData,
9b639cf2d6 2015-05-05        kinaba: 	WTSVirtualFileHandle
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: version(Unicode) {
9b639cf2d6 2015-05-05        kinaba: 	alias WTSEnumerateServersW WTSEnumerateServers;
9b639cf2d6 2015-05-05        kinaba: 	alias WTSOpenServerW WTSOpenServer;
9b639cf2d6 2015-05-05        kinaba: 	alias WTSEnumerateSessionsW WTSEnumerateSessions;
9b639cf2d6 2015-05-05        kinaba: 	alias WTSEnumerateProcessesW WTSEnumerateProcesses;
9b639cf2d6 2015-05-05        kinaba: 	alias WTSQuerySessionInformationW WTSQuerySessionInformation;
9b639cf2d6 2015-05-05        kinaba: 	alias WTSQueryUserConfigW WTSQueryUserConfig;
9b639cf2d6 2015-05-05        kinaba: 	alias WTSSetUserConfigW WTSSetUserConfig;
9b639cf2d6 2015-05-05        kinaba: 	alias WTSSendMessageW WTSSendMessage;
9b639cf2d6 2015-05-05        kinaba: } else {
9b639cf2d6 2015-05-05        kinaba: 	alias WTSEnumerateServersA WTSEnumerateServers;
9b639cf2d6 2015-05-05        kinaba: 	alias WTSOpenServerA WTSOpenServer;
9b639cf2d6 2015-05-05        kinaba: 	alias WTSEnumerateSessionsA WTSEnumerateSessions;
9b639cf2d6 2015-05-05        kinaba: 	alias WTSEnumerateProcessesA WTSEnumerateProcesses;
9b639cf2d6 2015-05-05        kinaba: 	alias WTSQuerySessionInformationA WTSQuerySessionInformation;
9b639cf2d6 2015-05-05        kinaba: 	alias WTSQueryUserConfigA WTSQueryUserConfig;
9b639cf2d6 2015-05-05        kinaba: 	alias WTSSetUserConfigA WTSSetUserConfig;
9b639cf2d6 2015-05-05        kinaba: 	alias WTSSendMessageA WTSSendMessage;
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: extern(Windows) {
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSEnumerateServersW(LPWSTR pDomainName, DWORD Reserved, DWORD Version, PWTS_SERVER_INFOW* ppServerInfo, DWORD* pCount);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSEnumerateServersA(LPSTR pDomainName, DWORD Reserved, DWORD Version, PWTS_SERVER_INFOA* ppServerInfo, DWORD* pCount);
9b639cf2d6 2015-05-05        kinaba: 	HANDLE WTSOpenServerW(LPWSTR pServerName);
9b639cf2d6 2015-05-05        kinaba: 	HANDLE WTSOpenServerA(LPSTR pServerName);
9b639cf2d6 2015-05-05        kinaba: 	VOID WTSCloseServer(HANDLE hServer);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSEnumerateSessionsW(HANDLE hServer, DWORD Reserved, DWORD Version, PWTS_SESSION_INFOW* ppSessionInfo, DWORD* pCount);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSEnumerateSessionsA(HANDLE hServer, DWORD Reserved, DWORD Version, PWTS_SESSION_INFOA* ppSessionInfo, DWORD* pCount);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSEnumerateProcessesW(HANDLE hServer, DWORD Reserved, DWORD Version, PWTS_PROCESS_INFOW* ppProcessInfo, DWORD* pCount);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSEnumerateProcessesA(HANDLE hServer, DWORD Reserved, DWORD Version, PWTS_PROCESS_INFOA* ppProcessInfo, DWORD* pCount);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSTerminateProcess(HANDLE hServer, DWORD ProcessId, DWORD ExitCode);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSQuerySessionInformationW(HANDLE hServer, DWORD SessionId, WTS_INFO_CLASS WTSInfoClass, LPWSTR* ppBuffer, DWORD* pBytesReturned);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSQuerySessionInformationA(HANDLE hServer, DWORD SessionId, WTS_INFO_CLASS WTSInfoClass, LPSTR* ppBuffer, DWORD* pBytesReturned);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSQueryUserConfigW(LPWSTR pServerName, LPWSTR pUserName, WTS_CONFIG_CLASS WTSConfigClass, LPWSTR* ppBuffer, DWORD* pBytesReturned);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSQueryUserConfigA(LPSTR pServerName, LPSTR pUserName, WTS_CONFIG_CLASS WTSConfigClass, LPSTR* ppBuffer, DWORD* pBytesReturned);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSSetUserConfigW(LPWSTR pServerName, LPWSTR pUserName, WTS_CONFIG_CLASS WTSConfigClass, LPWSTR pBuffer, DWORD DataLength);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSSetUserConfigA(LPSTR pServerName, LPSTR pUserName, WTS_CONFIG_CLASS WTSConfigClass, LPSTR pBuffer, DWORD DataLength);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSSendMessageW(HANDLE hServer, DWORD SessionId, LPWSTR pTitle, DWORD TitleLength, LPWSTR pMessage, DWORD MessageLength, DWORD Style, DWORD Timeout, DWORD* pResponse, WINBOOL bWait);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSSendMessageA(HANDLE hServer, DWORD SessionId, LPSTR pTitle, DWORD TitleLength, LPSTR pMessage, DWORD MessageLength, DWORD Style, DWORD Timeout, DWORD* pResponse, WINBOOL bWait);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSDisconnectSession(HANDLE hServer, DWORD SessionId, WINBOOL bWait);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSLogoffSession(HANDLE hServer, DWORD SessionId, WINBOOL bWait);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSShutdownSystem(HANDLE hServer, DWORD ShutdownFlag);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSWaitSystemEvent(HANDLE hServer, DWORD EventMask, DWORD* pEventFlags);
9b639cf2d6 2015-05-05        kinaba: 	HANDLE WTSVirtualChannelOpen(HANDLE hServer, DWORD SessionId, LPSTR pVirtualName);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSVirtualChannelClose(HANDLE hChannelHandle);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSVirtualChannelRead(HANDLE hChannelHandle, ULONG TimeOut, PCHAR Buffer, ULONG BufferSize, PULONG pBytesRead);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSVirtualChannelWrite(HANDLE hChannelHandle, PCHAR Buffer, ULONG Length, PULONG pBytesWritten);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSVirtualChannelPurgeInput(HANDLE hChannelHandle);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSVirtualChannelPurgeOutput(HANDLE hChannelHandle);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSVirtualChannelQuery(HANDLE hChannelHandle, WTS_VIRTUAL_CLASS, PVOID* ppBuffer, DWORD* pBytesReturned);
9b639cf2d6 2015-05-05        kinaba: 	VOID WTSFreeMemory(PVOID pMemory);
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSRegisterSessionNotification(HWND hWnd, DWORD dwFlags);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSUnRegisterSessionNotification(HWND hWnd);
9b639cf2d6 2015-05-05        kinaba: 	WINBOOL WTSQueryUserToken(ULONG SessionId, PHANDLE phToken);
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum {
9b639cf2d6 2015-05-05        kinaba: 	NOTIFY_FOR_ALL_SESSIONS = 1,
9b639cf2d6 2015-05-05        kinaba: 	NOTIFY_FOR_THIS_SESSION = 0
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: enum {
9b639cf2d6 2015-05-05        kinaba: 	USERNAME_LENGTH       = 20,
9b639cf2d6 2015-05-05        kinaba: 	CLIENTNAME_LENGTH     = 20,
9b639cf2d6 2015-05-05        kinaba: 	CLIENTADDRESS_LENGTH  = 30,
9b639cf2d6 2015-05-05        kinaba: 	WINSTATIONNAME_LENGTH = 32,
9b639cf2d6 2015-05-05        kinaba: 	DOMAIN_LENGTH         = 17
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: static if (_WIN32_WINNT >= 0x600) {
9b639cf2d6 2015-05-05        kinaba: 	struct WTSCLIENTW {
9b639cf2d6 2015-05-05        kinaba: 		WCHAR   ClientName[CLIENTNAME_LENGTH + 1];
9b639cf2d6 2015-05-05        kinaba: 		WCHAR   Domain[DOMAIN_LENGTH + 1];
9b639cf2d6 2015-05-05        kinaba: 		WCHAR   UserName[USERNAME_LENGTH + 1];
9b639cf2d6 2015-05-05        kinaba: 		WCHAR   WorkDirectory[MAX_PATH + 1];
9b639cf2d6 2015-05-05        kinaba: 		WCHAR   InitialProgram[MAX_PATH + 1];
9b639cf2d6 2015-05-05        kinaba: 		BYTE    EncryptionLevel;
9b639cf2d6 2015-05-05        kinaba: 		ULONG   ClientAddressFamily;
9b639cf2d6 2015-05-05        kinaba: 		USHORT  ClientAddress[CLIENTADDRESS_LENGTH + 1];
9b639cf2d6 2015-05-05        kinaba: 		USHORT  HRes;
9b639cf2d6 2015-05-05        kinaba: 		USHORT  VRes;
9b639cf2d6 2015-05-05        kinaba: 		USHORT  ColorDepth;
9b639cf2d6 2015-05-05        kinaba: 		WCHAR   ClientDirectory[MAX_PATH + 1];
9b639cf2d6 2015-05-05        kinaba: 		ULONG   ClientBuildNumber;
9b639cf2d6 2015-05-05        kinaba: 		ULONG   ClientHardwareId;
9b639cf2d6 2015-05-05        kinaba: 		USHORT  ClientProductId;
9b639cf2d6 2015-05-05        kinaba: 		USHORT  OutBufCountHost;
9b639cf2d6 2015-05-05        kinaba: 		USHORT  OutBufCountClient;
9b639cf2d6 2015-05-05        kinaba: 		USHORT  OutBufLength;
9b639cf2d6 2015-05-05        kinaba: 		WCHAR   DeviceId[MAX_PATH + 1];
9b639cf2d6 2015-05-05        kinaba: 	}
9b639cf2d6 2015-05-05        kinaba: 	alias WTSCLIENTW* PWTSCLIENTW;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	struct WTSCLIENTA {
9b639cf2d6 2015-05-05        kinaba: 		CHAR    ClientName[CLIENTNAME_LENGTH + 1];
9b639cf2d6 2015-05-05        kinaba: 		CHAR    Domain[DOMAIN_LENGTH + 1 ];
9b639cf2d6 2015-05-05        kinaba: 		CHAR    UserName[USERNAME_LENGTH + 1];
9b639cf2d6 2015-05-05        kinaba: 		CHAR    WorkDirectory[MAX_PATH + 1];
9b639cf2d6 2015-05-05        kinaba: 		CHAR    InitialProgram[MAX_PATH + 1];
9b639cf2d6 2015-05-05        kinaba: 		BYTE    EncryptionLevel;
9b639cf2d6 2015-05-05        kinaba: 		ULONG   ClientAddressFamily;
9b639cf2d6 2015-05-05        kinaba: 		USHORT  ClientAddress[CLIENTADDRESS_LENGTH + 1];
9b639cf2d6 2015-05-05        kinaba: 		USHORT  HRes;
9b639cf2d6 2015-05-05        kinaba: 		USHORT  VRes;
9b639cf2d6 2015-05-05        kinaba: 		USHORT  ColorDepth;
9b639cf2d6 2015-05-05        kinaba: 		CHAR    ClientDirectory[MAX_PATH + 1];
9b639cf2d6 2015-05-05        kinaba: 		ULONG   ClientBuildNumber;
9b639cf2d6 2015-05-05        kinaba: 		ULONG   ClientHardwareId;
9b639cf2d6 2015-05-05        kinaba: 		USHORT  ClientProductId;
9b639cf2d6 2015-05-05        kinaba: 		USHORT  OutBufCountHost;
9b639cf2d6 2015-05-05        kinaba: 		USHORT  OutBufCountClient;
9b639cf2d6 2015-05-05        kinaba: 		USHORT  OutBufLength;
9b639cf2d6 2015-05-05        kinaba: 		CHAR    DeviceId[MAX_PATH + 1];
9b639cf2d6 2015-05-05        kinaba: 	}
9b639cf2d6 2015-05-05        kinaba: 	alias WTSCLIENTA* PWTSCLIENTA;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	version(Unicode) {
9b639cf2d6 2015-05-05        kinaba: 		alias WTSCLIENTW  WTSCLIENT;
9b639cf2d6 2015-05-05        kinaba: 		alias PWTSCLIENTW PWTSCLIENT;
9b639cf2d6 2015-05-05        kinaba: 	} else {
9b639cf2d6 2015-05-05        kinaba: 		alias WTSCLIENTA  WTSCLIENT;
9b639cf2d6 2015-05-05        kinaba: 		alias PWTSCLIENTA PWTSCLIENT;
9b639cf2d6 2015-05-05        kinaba: 	}
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	struct WTSINFOW {
9b639cf2d6 2015-05-05        kinaba: 		WTS_CONNECTSTATE_CLASS State;
9b639cf2d6 2015-05-05        kinaba: 		DWORD                  SessionId;
9b639cf2d6 2015-05-05        kinaba: 		DWORD                  IncomingBytes;
9b639cf2d6 2015-05-05        kinaba: 		DWORD                  OutgoingBytes;
9b639cf2d6 2015-05-05        kinaba: 		DWORD                  IncomingCompressedBytes;
9b639cf2d6 2015-05-05        kinaba: 		DWORD                  OutgoingCompressedBytes;
9b639cf2d6 2015-05-05        kinaba: 		WCHAR                  WinStationName[WINSTATIONNAME_LENGTH];
9b639cf2d6 2015-05-05        kinaba: 		WCHAR                  Domain[DOMAIN_LENGTH];
9b639cf2d6 2015-05-05        kinaba: 		WCHAR                  UserName[USERNAME_LENGTH+1];
9b639cf2d6 2015-05-05        kinaba: 		LARGE_INTEGER          ConnectTime;
9b639cf2d6 2015-05-05        kinaba: 		LARGE_INTEGER          DisconnectTime;
9b639cf2d6 2015-05-05        kinaba: 		LARGE_INTEGER          LastInputTime;
9b639cf2d6 2015-05-05        kinaba: 		LARGE_INTEGER          LogonTime;
9b639cf2d6 2015-05-05        kinaba: 		LARGE_INTEGER          CurrentTime;
9b639cf2d6 2015-05-05        kinaba: 	}
9b639cf2d6 2015-05-05        kinaba: 	alias WTSINFOW* PWTSINFOW;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	struct WTSINFOA {
9b639cf2d6 2015-05-05        kinaba: 		WTS_CONNECTSTATE_CLASS State;
9b639cf2d6 2015-05-05        kinaba: 		DWORD                  SessionId;
9b639cf2d6 2015-05-05        kinaba: 		DWORD                  IncomingBytes;
9b639cf2d6 2015-05-05        kinaba: 		DWORD                  OutgoingBytes;
9b639cf2d6 2015-05-05        kinaba: 		DWORD                  IncomingCompressedBytes;
9b639cf2d6 2015-05-05        kinaba: 		DWORD                  OutgoingCompressedBytes;
9b639cf2d6 2015-05-05        kinaba: 		CHAR                   WinStationName[WINSTATIONNAME_LENGTH];
9b639cf2d6 2015-05-05        kinaba: 		CHAR                   Domain[DOMAIN_LENGTH];
9b639cf2d6 2015-05-05        kinaba: 		CHAR                   UserName[USERNAME_LENGTH+1];
9b639cf2d6 2015-05-05        kinaba: 		LARGE_INTEGER          ConnectTime;
9b639cf2d6 2015-05-05        kinaba: 		LARGE_INTEGER          DisconnectTime;
9b639cf2d6 2015-05-05        kinaba: 		LARGE_INTEGER          LastInputTime;
9b639cf2d6 2015-05-05        kinaba: 		LARGE_INTEGER          LogonTime;
9b639cf2d6 2015-05-05        kinaba: 		LARGE_INTEGER          CurrentTime;
9b639cf2d6 2015-05-05        kinaba: 	}
9b639cf2d6 2015-05-05        kinaba: 	alias WTSINFOA* PWTSINFOA;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	version(Unicode) {
9b639cf2d6 2015-05-05        kinaba: 		alias WTSINFOW  WTSINFO;
9b639cf2d6 2015-05-05        kinaba: 		alias PWTSINFOW PWTSINFO;
9b639cf2d6 2015-05-05        kinaba: 	} else {
9b639cf2d6 2015-05-05        kinaba: 		alias WTSINFOA  WTSINFO;
9b639cf2d6 2015-05-05        kinaba: 		alias PWTSINFOA PWTSINFO;
9b639cf2d6 2015-05-05        kinaba: 	}
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	extern(Windows) {
9b639cf2d6 2015-05-05        kinaba: 		WINBOOL WTSConnectSessionA(
9b639cf2d6 2015-05-05        kinaba: 			ULONG LogonId,
9b639cf2d6 2015-05-05        kinaba: 			ULONG TargetLogonId,
9b639cf2d6 2015-05-05        kinaba: 			PSTR   pPassword,
9b639cf2d6 2015-05-05        kinaba: 			WINBOOL bWait
9b639cf2d6 2015-05-05        kinaba: 		);
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 		WINBOOL WTSConnectSessionW(
9b639cf2d6 2015-05-05        kinaba: 			ULONG LogonId,
9b639cf2d6 2015-05-05        kinaba: 			ULONG TargetLogonId,
9b639cf2d6 2015-05-05        kinaba: 			PWSTR  pPassword,
9b639cf2d6 2015-05-05        kinaba: 			WINBOOL bWait
9b639cf2d6 2015-05-05        kinaba: 		);
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 		WINBOOL WTSRegisterSessionNotificationEx(
9b639cf2d6 2015-05-05        kinaba: 			HANDLE hServer,
9b639cf2d6 2015-05-05        kinaba: 			HWND hWnd,
9b639cf2d6 2015-05-05        kinaba: 			DWORD dwFlags
9b639cf2d6 2015-05-05        kinaba: 		);
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 		WINBOOL WTSStartRemoteControlSessionA(
9b639cf2d6 2015-05-05        kinaba: 			LPSTR pTargetServerName,
9b639cf2d6 2015-05-05        kinaba: 			ULONG TargetLogonId,
9b639cf2d6 2015-05-05        kinaba: 			BYTE HotkeyVk,
9b639cf2d6 2015-05-05        kinaba: 			USHORT HotkeyModifiers
9b639cf2d6 2015-05-05        kinaba: 		);
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 		WINBOOL WTSStartRemoteControlSessionW(
9b639cf2d6 2015-05-05        kinaba: 			LPWSTR pTargetServerName,
9b639cf2d6 2015-05-05        kinaba: 			ULONG TargetLogonId,
9b639cf2d6 2015-05-05        kinaba: 			BYTE HotkeyVk,
9b639cf2d6 2015-05-05        kinaba: 			USHORT HotkeyModifiers
9b639cf2d6 2015-05-05        kinaba: 		);
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 		version(Unicode) {
9b639cf2d6 2015-05-05        kinaba: 			alias WTSStartRemoteControlSessionW WTSStartRemoteControlSession;
9b639cf2d6 2015-05-05        kinaba: 			alias WTSConnectSessionW WTSConnectSession;
9b639cf2d6 2015-05-05        kinaba: 		} else {
9b639cf2d6 2015-05-05        kinaba: 			alias WTSStartRemoteControlSessionA WTSStartRemoteControlSession;
9b639cf2d6 2015-05-05        kinaba: 			alias WTSConnectSessionA WTSConnectSession;
9b639cf2d6 2015-05-05        kinaba: 		}
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 		WINBOOL WTSStopRemoteControlSession(
9b639cf2d6 2015-05-05        kinaba: 			ULONG LogonId
9b639cf2d6 2015-05-05        kinaba: 		);
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 		WINBOOL WTSUnRegisterSessionNotificationEx(
9b639cf2d6 2015-05-05        kinaba: 			HANDLE hServer,
9b639cf2d6 2015-05-05        kinaba: 			HWND hWnd
9b639cf2d6 2015-05-05        kinaba: 		);
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 		HANDLE WTSVirtualChannelOpenEx(
9b639cf2d6 2015-05-05        kinaba: 			DWORD SessionId,
9b639cf2d6 2015-05-05        kinaba: 			LPSTR pVirtualName,
9b639cf2d6 2015-05-05        kinaba: 			DWORD flags
9b639cf2d6 2015-05-05        kinaba: 		);
9b639cf2d6 2015-05-05        kinaba: 	} /* extern(Windows) */
9b639cf2d6 2015-05-05        kinaba: } /* static if (_WIN32_WINNT >= 0x600) */