tssbx.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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. #if (_WIN32_WINNT >= 0x0600)
  9. #ifdef __cplusplus
  10. extern "C" {
  11. #endif
  12. typedef enum _WTSSBX_ADDRESS_FAMILY {
  13. WTSSBX_ADDRESS_FAMILY_AF_UNSPEC = 0,
  14. WTSSBX_ADDRESS_FAMILY_AF_INET = 1,
  15. WTSSBX_ADDRESS_FAMILY_AF_INET6 = 2,
  16. WTSSBX_ADDRESS_FAMILY_AF_IPX = 3,
  17. WTSSBX_ADDRESS_FAMILY_AF_NETBIOS = 4
  18. } WTSSBX_ADDRESS_FAMILY;
  19. typedef enum _WTSSBX_MACHINE_DRAIN {
  20. WTSSBX_MACHINE_DRAIN_UNSPEC = 0,
  21. WTSSBX_MACHINE_DRAIN_OFF = 1,
  22. WTSSBX_MACHINE_DRAIN_ON = 2
  23. } WTSSBX_MACHINE_DRAIN;
  24. typedef enum _WTSSBX_NOTIFICATION_TYPE {
  25. WTSSBX_MACHINE_SESSION_MODE_UNSPEC = 0,
  26. WTSSBX_MACHINE_SESSION_MODE_SINGLE = 1,
  27. WTSSBX_MACHINE_SESSION_MODE_MULTIPLE = 2
  28. } WTSSBX_NOTIFICATION_TYPE;
  29. typedef enum _WTSSBX_MACHINE_STATE {
  30. WTSSBX_MACHINE_STATE_UNSPEC = 0,
  31. WTSSBX_MACHINE_STATE_READY = 1,
  32. WTSSBX_MACHINE_STATE_SYNCHRONIZING = 2
  33. } WTSSBX_MACHINE_STATE;
  34. typedef enum _WTSSBX_NOTIFICATION_TYPE {
  35. WTSSBX_NOTIFICATION_REMOVED = 1,
  36. WTSSBX_NOTIFICATION_CHANGED = 2,
  37. WTSSBX_NOTIFICATION_ADDED = 4,
  38. WTSSBX_NOTIFICATION_RESYNC = 8
  39. } WTSSBX_NOTIFICATION_TYPE;
  40. typedef enum _WTSSBX_SESSION_STATE {
  41. WTSSBX_SESSION_STATE_UNSPEC = 0,
  42. WTSSBX_SESSION_STATE_ACTIVE = 1,
  43. WTSSBX_SESSION_STATE_DISCONNECTED = 2
  44. } WTSSBX_SESSION_STATE;
  45. typedef struct _WTSSBX_IP_ADDRESS {
  46. WTSSBX_ADDRESS_FAMILY AddressFamily;
  47. BYTE Address[16];
  48. unsigned short PortNumber;
  49. DWORD dwScope;
  50. } WTSSBX_IP_ADDRESS;
  51. #define MaxFQDN_Len 256
  52. #define MaxNetBiosName_Len 16
  53. typedef struct _WTSSBX_MACHINE_CONNECT_INFO {
  54. WCHAR wczMachineFQDN[MaxFQDN_Len + 1];
  55. WCHAR wczMachineNetBiosName[MaxNetBiosName_Len + 1];
  56. DWORD dwNumOfIPAddr;
  57. WTSSBX_IP_ADDRESS IPaddr[MaxNumOfExposed_IPs];
  58. } WTSSBX_MACHINE_CONNECT_INFO;
  59. #define MaxFarm_Len 256
  60. typedef struct _WTSSBX_MACHINE_INFO {
  61. WTSSBX_MACHINE_CONNECT_INFO ClientConnectInfo;
  62. WCHAR wczFarmName[MaxFarm_Len + 1];
  63. WTSSBX_IP_ADDRESS InternalIPAddress;
  64. DWORD dwMaxSessionsLimit;
  65. DWORD ServerWeight;
  66. WTSSBX_MACHINE_SESSION_MODE SingleSessionMode;
  67. WTSSBX_MACHINE_DRAIN InDrain;
  68. WTSSBX_MACHINE_STATE MachineState;
  69. } WTSSBX_MACHINE_INFO;
  70. #define MaxUserName_Len 104
  71. #define MaxDomainName_Len 256
  72. #define MaxAppName_Len 256
  73. typedef struct _WTSSBX_SESSION_INFO {
  74. WCHAR wszUserName[MaxUserName_Len + 1];
  75. WCHAR wszDomainName[MaxDomainName_Len + 1];
  76. WCHAR ApplicationType[MaxAppName_Len + 1];
  77. DWORD dwSessionId;
  78. FILETIME CreateTime;
  79. FILETIME DisconnectTime;
  80. WTSSBX_SESSION_STATE SessionState;
  81. } WTSSBX_SESSION_INFO;
  82. /* IID_IWTSSBPlugin is defined as DC44BE78-B18D-4399-B210-641BF67A002C */
  83. #ifdef __cplusplus
  84. }
  85. #endif
  86. #endif /*(_WIN32_WINNT >= 0x0600)*/
  87. #endif /*_INC_TSSBX*/