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) */