Mercurial > games > semicongine
diff fuhtark_test/include/winapi/wtsapi32.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fuhtark_test/include/winapi/wtsapi32.h Wed Nov 26 21:36:48 2025 +0700 @@ -0,0 +1,204 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the w64 mingw-runtime package. + * No warranty is given; refer to the file DISCLAIMER within this package. + */ +#ifndef _INC_WTSAPI +#define _INC_WTSAPI + +#ifdef __cplusplus +extern "C" { +#endif + +#define WTS_CURRENT_SERVER ((HANDLE)NULL) +#define WTS_CURRENT_SERVER_HANDLE ((HANDLE)NULL) +#define WTS_CURRENT_SERVER_NAME (NULL) + +#define WTS_CURRENT_SESSION ((DWORD)-1) + +#ifndef IDTIMEOUT +#define IDTIMEOUT 32000 +#endif +#ifndef IDASYNC +#define IDASYNC 32001 +#endif + +#define WTS_WSD_LOGOFF 0x1 +#define WTS_WSD_SHUTDOWN 0x2 +#define WTS_WSD_REBOOT 0x4 +#define WTS_WSD_POWEROFF 0x8 + +#define WTS_WSD_FASTREBOOT 0x10 + + typedef enum _WTS_CONNECTSTATE_CLASS { + WTSActive,WTSConnected,WTSConnectQuery,WTSShadow,WTSDisconnected,WTSIdle,WTSListen,WTSReset,WTSDown,WTSInit + } WTS_CONNECTSTATE_CLASS; + + typedef struct _WTS_SERVER_INFOW { + LPWSTR pServerName; + } WTS_SERVER_INFOW,*PWTS_SERVER_INFOW; + + typedef struct _WTS_SERVER_INFOA { + LPSTR pServerName; + } WTS_SERVER_INFOA,*PWTS_SERVER_INFOA; + +#ifdef UNICODE +#define WTS_SERVER_INFO WTS_SERVER_INFOW +#define PWTS_SERVER_INFO PWTS_SERVER_INFOW +#else +#define WTS_SERVER_INFO WTS_SERVER_INFOA +#define PWTS_SERVER_INFO PWTS_SERVER_INFOA +#endif + + typedef struct _WTS_SESSION_INFOW { + DWORD SessionId; + LPWSTR pWinStationName; + WTS_CONNECTSTATE_CLASS State; + } WTS_SESSION_INFOW,*PWTS_SESSION_INFOW; + + typedef struct _WTS_SESSION_INFOA { + DWORD SessionId; + LPSTR pWinStationName; + + WTS_CONNECTSTATE_CLASS State; + } WTS_SESSION_INFOA,*PWTS_SESSION_INFOA; + +#ifdef UNICODE +#define WTS_SESSION_INFO WTS_SESSION_INFOW +#define PWTS_SESSION_INFO PWTS_SESSION_INFOW +#else +#define WTS_SESSION_INFO WTS_SESSION_INFOA +#define PWTS_SESSION_INFO PWTS_SESSION_INFOA +#endif + + typedef struct _WTS_PROCESS_INFOW { + DWORD SessionId; + DWORD ProcessId; + LPWSTR pProcessName; + PSID pUserSid; + } WTS_PROCESS_INFOW,*PWTS_PROCESS_INFOW; + + typedef struct _WTS_PROCESS_INFOA { + DWORD SessionId; + DWORD ProcessId; + LPSTR pProcessName; + PSID pUserSid; + } WTS_PROCESS_INFOA,*PWTS_PROCESS_INFOA; + +#ifdef UNICODE +#define WTS_PROCESS_INFO WTS_PROCESS_INFOW +#define PWTS_PROCESS_INFO PWTS_PROCESS_INFOW +#else +#define WTS_PROCESS_INFO WTS_PROCESS_INFOA +#define PWTS_PROCESS_INFO PWTS_PROCESS_INFOA +#endif + +#define WTS_PROTOCOL_TYPE_CONSOLE 0 +#define WTS_PROTOCOL_TYPE_ICA 1 +#define WTS_PROTOCOL_TYPE_RDP 2 + + typedef enum _WTS_INFO_CLASS { + WTSInitialProgram,WTSApplicationName,WTSWorkingDirectory,WTSOEMId,WTSSessionId,WTSUserName,WTSWinStationName,WTSDomainName,WTSConnectState, + WTSClientBuildNumber,WTSClientName,WTSClientDirectory,WTSClientProductId,WTSClientHardwareId,WTSClientAddress,WTSClientDisplay, + WTSClientProtocolType + } WTS_INFO_CLASS; + + typedef struct _WTS_CLIENT_ADDRESS { + DWORD AddressFamily; + BYTE Address[20]; + } WTS_CLIENT_ADDRESS,*PWTS_CLIENT_ADDRESS; + + typedef struct _WTS_CLIENT_DISPLAY { + DWORD HorizontalResolution; + DWORD VerticalResolution; + DWORD ColorDepth; + } WTS_CLIENT_DISPLAY,*PWTS_CLIENT_DISPLAY; + + typedef enum _WTS_CONFIG_CLASS { + WTSUserConfigInitialProgram,WTSUserConfigWorkingDirectory,WTSUserConfigfInheritInitialProgram,WTSUserConfigfAllowLogonTerminalServer, + WTSUserConfigTimeoutSettingsConnections,WTSUserConfigTimeoutSettingsDisconnections,WTSUserConfigTimeoutSettingsIdle, + WTSUserConfigfDeviceClientDrives,WTSUserConfigfDeviceClientPrinters,WTSUserConfigfDeviceClientDefaultPrinter,WTSUserConfigBrokenTimeoutSettings, + WTSUserConfigReconnectSettings,WTSUserConfigModemCallbackSettings,WTSUserConfigModemCallbackPhoneNumber,WTSUserConfigShadowingSettings, + WTSUserConfigTerminalServerProfilePath,WTSUserConfigTerminalServerHomeDir,WTSUserConfigTerminalServerHomeDirDrive, + WTSUserConfigfTerminalServerRemoteHomeDir + } WTS_CONFIG_CLASS; + +#define WTS_EVENT_NONE 0x0 +#define WTS_EVENT_CREATE 0x1 +#define WTS_EVENT_DELETE 0x2 +#define WTS_EVENT_RENAME 0x4 +#define WTS_EVENT_CONNECT 0x8 +#define WTS_EVENT_DISCONNECT 0x10 +#define WTS_EVENT_LOGON 0x20 +#define WTS_EVENT_LOGOFF 0x40 +#define WTS_EVENT_STATECHANGE 0x80 +#define WTS_EVENT_LICENSE 0x100 +#define WTS_EVENT_ALL 0x7fffffff +#define WTS_EVENT_FLUSH 0x80000000 + + typedef enum _WTS_VIRTUAL_CLASS { + WTSVirtualClientData,WTSVirtualFileHandle + } WTS_VIRTUAL_CLASS; + +#ifdef UNICODE +#define WTSEnumerateServers WTSEnumerateServersW +#define WTSOpenServer WTSOpenServerW +#define WTSEnumerateSessions WTSEnumerateSessionsW +#define WTSEnumerateProcesses WTSEnumerateProcessesW +#define WTSQuerySessionInformation WTSQuerySessionInformationW +#define WTSQueryUserConfig WTSQueryUserConfigW +#define WTSSetUserConfig WTSSetUserConfigW +#define WTSSendMessage WTSSendMessageW +#else +#define WTSEnumerateServers WTSEnumerateServersA +#define WTSOpenServer WTSOpenServerA +#define WTSEnumerateSessions WTSEnumerateSessionsA +#define WTSEnumerateProcesses WTSEnumerateProcessesA +#define WTSQuerySessionInformation WTSQuerySessionInformationA +#define WTSQueryUserConfig WTSQueryUserConfigA +#define WTSSetUserConfig WTSSetUserConfigA +#define WTSSendMessage WTSSendMessageA +#endif + + WINBOOL WINAPI WTSEnumerateServersW(LPWSTR pDomainName,DWORD Reserved,DWORD Version,PWTS_SERVER_INFOW *ppServerInfo,DWORD *pCount); + WINBOOL WINAPI WTSEnumerateServersA(LPSTR pDomainName,DWORD Reserved,DWORD Version,PWTS_SERVER_INFOA *ppServerInfo,DWORD *pCount); + HANDLE WINAPI WTSOpenServerW(LPWSTR pServerName); + HANDLE WINAPI WTSOpenServerA(LPSTR pServerName); + VOID WINAPI WTSCloseServer(HANDLE hServer); + WINBOOL WINAPI WTSEnumerateSessionsW(HANDLE hServer,DWORD Reserved,DWORD Version,PWTS_SESSION_INFOW *ppSessionInfo,DWORD *pCount); + WINBOOL WINAPI WTSEnumerateSessionsA(HANDLE hServer,DWORD Reserved,DWORD Version,PWTS_SESSION_INFOA *ppSessionInfo,DWORD *pCount); + WINBOOL WINAPI WTSEnumerateProcessesW(HANDLE hServer,DWORD Reserved,DWORD Version,PWTS_PROCESS_INFOW *ppProcessInfo,DWORD *pCount); + WINBOOL WINAPI WTSEnumerateProcessesA(HANDLE hServer,DWORD Reserved,DWORD Version,PWTS_PROCESS_INFOA *ppProcessInfo,DWORD *pCount); + WINBOOL WINAPI WTSTerminateProcess(HANDLE hServer,DWORD ProcessId,DWORD ExitCode); + WINBOOL WINAPI WTSQuerySessionInformationW(HANDLE hServer,DWORD SessionId,WTS_INFO_CLASS WTSInfoClass,LPWSTR *ppBuffer,DWORD *pBytesReturned); + WINBOOL WINAPI WTSQuerySessionInformationA(HANDLE hServer,DWORD SessionId,WTS_INFO_CLASS WTSInfoClass,LPSTR *ppBuffer,DWORD *pBytesReturned); + WINBOOL WINAPI WTSQueryUserConfigW(LPWSTR pServerName,LPWSTR pUserName,WTS_CONFIG_CLASS WTSConfigClass,LPWSTR *ppBuffer,DWORD *pBytesReturned); + WINBOOL WINAPI WTSQueryUserConfigA(LPSTR pServerName,LPSTR pUserName,WTS_CONFIG_CLASS WTSConfigClass,LPSTR *ppBuffer,DWORD *pBytesReturned); + WINBOOL WINAPI WTSSetUserConfigW(LPWSTR pServerName,LPWSTR pUserName,WTS_CONFIG_CLASS WTSConfigClass,LPWSTR pBuffer,DWORD DataLength); + WINBOOL WINAPI WTSSetUserConfigA(LPSTR pServerName,LPSTR pUserName,WTS_CONFIG_CLASS WTSConfigClass,LPSTR pBuffer,DWORD DataLength); + WINBOOL WINAPI WTSSendMessageW(HANDLE hServer,DWORD SessionId,LPWSTR pTitle,DWORD TitleLength,LPWSTR pMessage,DWORD MessageLength,DWORD Style,DWORD Timeout,DWORD *pResponse,WINBOOL bWait); + WINBOOL WINAPI WTSSendMessageA(HANDLE hServer,DWORD SessionId,LPSTR pTitle,DWORD TitleLength,LPSTR pMessage,DWORD MessageLength,DWORD Style,DWORD Timeout,DWORD *pResponse,WINBOOL bWait); + WINBOOL WINAPI WTSDisconnectSession(HANDLE hServer,DWORD SessionId,WINBOOL bWait); + WINBOOL WINAPI WTSLogoffSession(HANDLE hServer,DWORD SessionId,WINBOOL bWait); + WINBOOL WINAPI WTSShutdownSystem(HANDLE hServer,DWORD ShutdownFlag); + WINBOOL WINAPI WTSWaitSystemEvent(HANDLE hServer,DWORD EventMask,DWORD *pEventFlags); + HANDLE WINAPI WTSVirtualChannelOpen(HANDLE hServer,DWORD SessionId,LPSTR pVirtualName); + WINBOOL WINAPI WTSVirtualChannelClose(HANDLE hChannelHandle); + WINBOOL WINAPI WTSVirtualChannelRead(HANDLE hChannelHandle,ULONG TimeOut,PCHAR Buffer,ULONG BufferSize,PULONG pBytesRead); + WINBOOL WINAPI WTSVirtualChannelWrite(HANDLE hChannelHandle,PCHAR Buffer,ULONG Length,PULONG pBytesWritten); + WINBOOL WINAPI WTSVirtualChannelPurgeInput(HANDLE hChannelHandle); + WINBOOL WINAPI WTSVirtualChannelPurgeOutput(HANDLE hChannelHandle); + WINBOOL WINAPI WTSVirtualChannelQuery(HANDLE hChannelHandle,WTS_VIRTUAL_CLASS,PVOID *ppBuffer,DWORD *pBytesReturned); + VOID WINAPI WTSFreeMemory(PVOID pMemory); + +#define NOTIFY_FOR_ALL_SESSIONS 1 +#define NOTIFY_FOR_THIS_SESSION 0 + + WINBOOL WINAPI WTSRegisterSessionNotification(HWND hWnd,DWORD dwFlags); + WINBOOL WINAPI WTSUnRegisterSessionNotification(HWND hWnd); + WINBOOL WINAPI WTSQueryUserToken(ULONG SessionId,PHANDLE phToken); + +#ifdef __cplusplus +} +#endif +#endif
