//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1992 - 1994. // // File: gluon.h // // Contents: Gluon data structure definitions // // History: 16-Mar-94 MikeSe Created // // Description: // // This file contains all the structure definitions related to // gluons. It is constructed in such a way that it can be #included // in an IDL file and that the resultant MIDL-generated H file will // not interfere when both are included, regardless of order. // //---------------------------------------------------------------------------- #ifndef __GLUON_H__ #define __GLUON_H__ // Handy macro for decoration with MIDL attributes #if defined(MIDL_PASS) # define MIDL_DECL(x) x # define MIDL_QUOTE(x) cpp_quote(x) #else # define MIDL_DECL(x) # define MIDL_QUOTE(x) #endif MIDL_QUOTE("#ifndef __GLUON_H__") MIDL_QUOTE("#define __GLUON_H__") // TDI transport address structure. We do not define this if tdi.h has // already been included. MIDL_QUOTE("#if !defined(_TDI_USER_)") #if !defined(_TDI_USER_) typedef struct _TA_ADDRESS { USHORT AddressLength; // length in bytes of Address[] in this USHORT AddressType; // type of this address # if defined(MIDL_PASS) [size_is(AddressLength)] UCHAR Address[]; # else UCHAR Address[1]; // actually AddressLength bytes long # endif } TA_ADDRESS; #endif MIDL_QUOTE("#endif") // Note that you must include tdi.h (first) if you need the AddressType // constant definitions. // DS_TRANSPORT, with RPC and File protocol modifiers typedef struct _DS_TRANSPORT { USHORT usFileProtocol; USHORT iPrincipal; USHORT grfModifiers; TA_ADDRESS taddr; } DS_TRANSPORT, *PDS_TRANSPORT; // The real size of a DS_TRANSPORT where AddressLength == 0. Need to // subtract off 2 UCHARs to take into account padding. #define DS_TRANSPORT_SIZE (sizeof(DS_TRANSPORT) - 2*sizeof(UCHAR)) MIDL_QUOTE("#define DS_TRANSPORT_SIZE (sizeof(DS_TRANSPORT) - 2*sizeof(UCHAR))") // File protocol identifiers #if defined(MIDL_PASS) const USHORT FSP_NONE = 0; // file access not supported const USHORT FSP_SMB = 1; // SMB (ie: LanMan redirector) const USHORT FSP_NCP = 2; // Netware Core Protocol (Netware requestor) const USHORT FSP_NFS = 3; // Sun NFS protocol const USHORT FSP_VINES = 4; // Banyan Vines const USHORT FSP_AFS = 5; // Andrews File System const USHORT FSP_DCE = 6; // DCE Andrews File System #else #define FSP_NONE 0 #define FSP_SMB 1 #define FSP_NCP 2 #define FSP_NFS 3 #define FSP_VINES 4 #define FSP_AFS 5 #define FSP_DCE 6 #endif // RPC modifiers #if defined(MIDL_PASS) const USHORT DST_RPC_CN = 0x0001; // supports a connection-oriented (ncacn_...) // RPC protocol for this transport. const USHORT DST_RPC_DG = 0x0002; // supports a connectionless (ncadg_...) // RPC protocol for this transport. const USHORT DST_RPC_NB_XNS = 0x0004; // ncacn_nb_xns protocol is supported const USHORT DST_RPC_NB_NB = 0x0008; // ncacn_nb_nb protocol is supported const USHORT DST_RPC_NB_IPX = 0x0010; // ncacn_nb_ipx protocol is supported const USHORT DST_RPC_NB_TCP = 0x0020; // ncacn_nb_tcp protocol is supported #else #define DST_RPC_CN 0x0001 #define DST_RPC_DG 0x0002 #define DST_RPC_NB_XNS 0x0004 #define DST_RPC_NB_NB 0x0008 #define DST_RPC_NB_IPX 0x0010 #define DST_RPC_NB_TCP 0x0020 #endif // DS_MACHINE typedef MIDL_DECL([string]) WCHAR * PNAME; typedef struct _DS_MACHINE { GUID guidSite; GUID guidMachine; ULONG grfFlags; MIDL_DECL([string]) LPWSTR pwszShareName; ULONG cPrincipals; MIDL_DECL([size_is(cPrincipals)]) PNAME *prgpwszPrincipals; ULONG cTransports; # if defined(MIDL_PASS) [size_is(cTransports)] PDS_TRANSPORT rpTrans[]; # else PDS_TRANSPORT rpTrans[1]; # endif } DS_MACHINE, *PDS_MACHINE; // The real size of a DS_MACHINE in which cTransports == 0 #define DS_MACHINE_SIZE (sizeof(DS_MACHINE) - sizeof(PDS_TRANSPORT)) MIDL_QUOTE("#define DS_MACHINE_SIZE (sizeof(DS_MACHINE) - sizeof(PDS_TRANSPORT))") // DS_GLUON typedef struct _DS_GLUON { GUID guidThis; MIDL_DECL([string]) LPWSTR pwszName; ULONG grfFlags; ULONG cMachines; # if defined(MIDL_PASS) [size_is(cMachines)] PDS_MACHINE rpMachines[]; # else PDS_MACHINE rpMachines[1]; # endif } DS_GLUON, *PDS_GLUON; // The real size of a DS_GLUON in which cMachines == 0 #define DS_GLUON_SIZE (sizeof(DS_GLUON) - sizeof(PDS_MACHINE)) MIDL_QUOTE("#define DS_GLUON_SIZE (sizeof(DS_GLUON) - sizeof(PDS_MACHINE))") MIDL_QUOTE("#endif") #endif // of ifndef __GLUON_H__