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