|  | /** | 
|  | * This file has no copyright assigned and is placed in the Public Domain. | 
|  | * This file is part of the mingw-w64 runtime package. | 
|  | * No warranty is given; refer to the file DISCLAIMER.PD within this package. | 
|  | */ | 
|  | #ifndef _INC_TSSBX | 
|  | #define _INC_TSSBX | 
|  |  | 
|  | #if (_WIN32_WINNT >= 0x0600) | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | typedef enum _WTSSBX_ADDRESS_FAMILY { | 
|  | WTSSBX_ADDRESS_FAMILY_AF_UNSPEC    = 0, | 
|  | WTSSBX_ADDRESS_FAMILY_AF_INET      = 1, | 
|  | WTSSBX_ADDRESS_FAMILY_AF_INET6     = 2, | 
|  | WTSSBX_ADDRESS_FAMILY_AF_IPX       = 3, | 
|  | WTSSBX_ADDRESS_FAMILY_AF_NETBIOS   = 4 | 
|  | } WTSSBX_ADDRESS_FAMILY; | 
|  |  | 
|  | typedef enum _WTSSBX_MACHINE_DRAIN { | 
|  | WTSSBX_MACHINE_DRAIN_UNSPEC   = 0, | 
|  | WTSSBX_MACHINE_DRAIN_OFF      = 1, | 
|  | WTSSBX_MACHINE_DRAIN_ON       = 2 | 
|  | } WTSSBX_MACHINE_DRAIN; | 
|  |  | 
|  | typedef enum _WTSSBX_NOTIFICATION_TYPE { | 
|  | WTSSBX_MACHINE_SESSION_MODE_UNSPEC     = 0, | 
|  | WTSSBX_MACHINE_SESSION_MODE_SINGLE     = 1, | 
|  | WTSSBX_MACHINE_SESSION_MODE_MULTIPLE   = 2 | 
|  | } WTSSBX_NOTIFICATION_TYPE; | 
|  |  | 
|  | typedef enum _WTSSBX_MACHINE_STATE { | 
|  | WTSSBX_MACHINE_STATE_UNSPEC          = 0, | 
|  | WTSSBX_MACHINE_STATE_READY           = 1, | 
|  | WTSSBX_MACHINE_STATE_SYNCHRONIZING   = 2 | 
|  | } WTSSBX_MACHINE_STATE; | 
|  |  | 
|  | typedef enum _WTSSBX_NOTIFICATION_TYPE { | 
|  | WTSSBX_NOTIFICATION_REMOVED   = 1, | 
|  | WTSSBX_NOTIFICATION_CHANGED   = 2, | 
|  | WTSSBX_NOTIFICATION_ADDED     = 4, | 
|  | WTSSBX_NOTIFICATION_RESYNC    = 8 | 
|  | } WTSSBX_NOTIFICATION_TYPE; | 
|  |  | 
|  | typedef enum _WTSSBX_SESSION_STATE { | 
|  | WTSSBX_SESSION_STATE_UNSPEC         = 0, | 
|  | WTSSBX_SESSION_STATE_ACTIVE         = 1, | 
|  | WTSSBX_SESSION_STATE_DISCONNECTED   = 2 | 
|  | } WTSSBX_SESSION_STATE; | 
|  |  | 
|  | typedef struct _WTSSBX_IP_ADDRESS { | 
|  | WTSSBX_ADDRESS_FAMILY  AddressFamily; | 
|  | BYTE                   Address[16]; | 
|  | unsigned short         PortNumber; | 
|  | DWORD                  dwScope; | 
|  | } WTSSBX_IP_ADDRESS; | 
|  |  | 
|  | #define MaxFQDN_Len 256 | 
|  | #define MaxNetBiosName_Len 16 | 
|  |  | 
|  | typedef struct _WTSSBX_MACHINE_CONNECT_INFO { | 
|  | WCHAR              wczMachineFQDN[MaxFQDN_Len + 1]; | 
|  | WCHAR              wczMachineNetBiosName[MaxNetBiosName_Len + 1]; | 
|  | DWORD              dwNumOfIPAddr; | 
|  | WTSSBX_IP_ADDRESS  IPaddr[MaxNumOfExposed_IPs]; | 
|  | } WTSSBX_MACHINE_CONNECT_INFO; | 
|  |  | 
|  | #define MaxFarm_Len 256 | 
|  |  | 
|  | typedef struct _WTSSBX_MACHINE_INFO { | 
|  | WTSSBX_MACHINE_CONNECT_INFO  ClientConnectInfo; | 
|  | WCHAR                        wczFarmName[MaxFarm_Len + 1]; | 
|  | WTSSBX_IP_ADDRESS            InternalIPAddress; | 
|  | DWORD                        dwMaxSessionsLimit; | 
|  | DWORD                        ServerWeight; | 
|  | WTSSBX_MACHINE_SESSION_MODE  SingleSessionMode; | 
|  | WTSSBX_MACHINE_DRAIN         InDrain; | 
|  | WTSSBX_MACHINE_STATE         MachineState; | 
|  | } WTSSBX_MACHINE_INFO; | 
|  |  | 
|  | #define MaxUserName_Len 104 | 
|  | #define MaxDomainName_Len 256 | 
|  | #define MaxAppName_Len 256 | 
|  |  | 
|  | typedef struct _WTSSBX_SESSION_INFO { | 
|  | WCHAR                 wszUserName[MaxUserName_Len + 1]; | 
|  | WCHAR                 wszDomainName[MaxDomainName_Len + 1]; | 
|  | WCHAR                 ApplicationType[MaxAppName_Len + 1]; | 
|  | DWORD                 dwSessionId; | 
|  | FILETIME              CreateTime; | 
|  | FILETIME              DisconnectTime; | 
|  | WTSSBX_SESSION_STATE  SessionState; | 
|  | } WTSSBX_SESSION_INFO; | 
|  |  | 
|  | /* IID_IWTSSBPlugin is defined as DC44BE78-B18D-4399-B210-641BF67A002C */ | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif /*(_WIN32_WINNT >= 0x0600)*/ | 
|  |  | 
|  | #endif /*_INC_TSSBX*/ |