master
  1/**
  2 * This file has no copyright assigned and is placed in the Public Domain.
  3 * This file is part of the mingw-w64 runtime package.
  4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5 */
  6#ifndef _INC_TSSBX
  7#define _INC_TSSBX
  8
  9#if (_WIN32_WINNT >= 0x0600)
 10
 11#ifdef __cplusplus
 12extern "C" {
 13#endif
 14
 15typedef enum _WTSSBX_ADDRESS_FAMILY {
 16  WTSSBX_ADDRESS_FAMILY_AF_UNSPEC    = 0,
 17  WTSSBX_ADDRESS_FAMILY_AF_INET      = 1,
 18  WTSSBX_ADDRESS_FAMILY_AF_INET6     = 2,
 19  WTSSBX_ADDRESS_FAMILY_AF_IPX       = 3,
 20  WTSSBX_ADDRESS_FAMILY_AF_NETBIOS   = 4
 21} WTSSBX_ADDRESS_FAMILY;
 22
 23typedef enum _WTSSBX_MACHINE_DRAIN {
 24  WTSSBX_MACHINE_DRAIN_UNSPEC   = 0,
 25  WTSSBX_MACHINE_DRAIN_OFF      = 1,
 26  WTSSBX_MACHINE_DRAIN_ON       = 2
 27} WTSSBX_MACHINE_DRAIN;
 28
 29typedef enum _WTSSBX_NOTIFICATION_TYPE {
 30  WTSSBX_MACHINE_SESSION_MODE_UNSPEC     = 0,
 31  WTSSBX_MACHINE_SESSION_MODE_SINGLE     = 1,
 32  WTSSBX_MACHINE_SESSION_MODE_MULTIPLE   = 2
 33} WTSSBX_NOTIFICATION_TYPE;
 34
 35typedef enum _WTSSBX_MACHINE_STATE {
 36  WTSSBX_MACHINE_STATE_UNSPEC          = 0,
 37  WTSSBX_MACHINE_STATE_READY           = 1,
 38  WTSSBX_MACHINE_STATE_SYNCHRONIZING   = 2
 39} WTSSBX_MACHINE_STATE;
 40
 41typedef enum _WTSSBX_NOTIFICATION_TYPE {
 42  WTSSBX_NOTIFICATION_REMOVED   = 1,
 43  WTSSBX_NOTIFICATION_CHANGED   = 2,
 44  WTSSBX_NOTIFICATION_ADDED     = 4,
 45  WTSSBX_NOTIFICATION_RESYNC    = 8
 46} WTSSBX_NOTIFICATION_TYPE;
 47
 48typedef enum _WTSSBX_SESSION_STATE {
 49  WTSSBX_SESSION_STATE_UNSPEC         = 0,
 50  WTSSBX_SESSION_STATE_ACTIVE         = 1,
 51  WTSSBX_SESSION_STATE_DISCONNECTED   = 2
 52} WTSSBX_SESSION_STATE;
 53
 54typedef struct _WTSSBX_IP_ADDRESS {
 55  WTSSBX_ADDRESS_FAMILY  AddressFamily;
 56  BYTE                   Address[16];
 57  unsigned short         PortNumber;
 58  DWORD                  dwScope;
 59} WTSSBX_IP_ADDRESS;
 60
 61#define MaxFQDN_Len 256
 62#define MaxNetBiosName_Len 16
 63
 64typedef struct _WTSSBX_MACHINE_CONNECT_INFO {
 65  WCHAR              wczMachineFQDN[MaxFQDN_Len + 1];
 66  WCHAR              wczMachineNetBiosName[MaxNetBiosName_Len + 1];
 67  DWORD              dwNumOfIPAddr;
 68  WTSSBX_IP_ADDRESS  IPaddr[MaxNumOfExposed_IPs];
 69} WTSSBX_MACHINE_CONNECT_INFO;
 70
 71#define MaxFarm_Len 256
 72
 73typedef struct _WTSSBX_MACHINE_INFO {
 74  WTSSBX_MACHINE_CONNECT_INFO  ClientConnectInfo;
 75  WCHAR                        wczFarmName[MaxFarm_Len + 1];
 76  WTSSBX_IP_ADDRESS            InternalIPAddress;
 77  DWORD                        dwMaxSessionsLimit;
 78  DWORD                        ServerWeight;
 79  WTSSBX_MACHINE_SESSION_MODE  SingleSessionMode;
 80  WTSSBX_MACHINE_DRAIN         InDrain;
 81  WTSSBX_MACHINE_STATE         MachineState;
 82} WTSSBX_MACHINE_INFO;
 83
 84#define MaxUserName_Len 104
 85#define MaxDomainName_Len 256
 86#define MaxAppName_Len 256
 87
 88typedef struct _WTSSBX_SESSION_INFO {
 89  WCHAR                 wszUserName[MaxUserName_Len + 1];
 90  WCHAR                 wszDomainName[MaxDomainName_Len + 1];
 91  WCHAR                 ApplicationType[MaxAppName_Len + 1];
 92  DWORD                 dwSessionId;
 93  FILETIME              CreateTime;
 94  FILETIME              DisconnectTime;
 95  WTSSBX_SESSION_STATE  SessionState;
 96} WTSSBX_SESSION_INFO;
 97
 98/* IID_IWTSSBPlugin is defined as DC44BE78-B18D-4399-B210-641BF67A002C */
 99
100#ifdef __cplusplus
101}
102#endif
103
104#endif /*(_WIN32_WINNT >= 0x0600)*/
105
106#endif /*_INC_TSSBX*/