Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

204 lines
6.2 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1998.
  5. //
  6. // File:
  7. // custmact.idl
  8. //
  9. // Contents:
  10. // Definition of types needed for custom marshalling
  11. // of activation properties interfaces.
  12. //
  13. // History:
  14. // VinayKr 01-26-98 Created
  15. //
  16. //--------------------------------------------------------------------------
  17. #ifndef DO_NO_IMPORTS
  18. import "wtypes.idl";
  19. import "objidl.idl";
  20. import "obase.idl";
  21. import "contxt.idl";
  22. import "activate.idl";
  23. #endif
  24. /** Activation related type definitions **/
  25. interface IActivatorCustomMarshal {
  26. /**
  27. The following 2 structs must be identical to corresponding
  28. ones in privact.idl
  29. **/
  30. typedef struct _customREMOTE_REQUEST_SCM_INFO
  31. {
  32. DWORD ClientImpLevel;
  33. unsigned short cRequestedProtseqs;
  34. [size_is(cRequestedProtseqs)]
  35. unsigned short *pRequestedProtseqs;
  36. } customREMOTE_REQUEST_SCM_INFO;
  37. typedef struct _customREMOTE_REPLY_SCM_INFO
  38. {
  39. OXID Oxid;
  40. DUALSTRINGARRAY *pdsaOxidBindings;
  41. IPID ipidRemUnknown;
  42. DWORD authnHint;
  43. COMVERSION serverVersion;
  44. } customREMOTE_REPLY_SCM_INFO;
  45. // BUGBUG: MIDL currently supports /robust with encode/decode
  46. // Hence the hack below should be fixed.
  47. // Please note that BYTE * data is NOT aligned to 8 by RPC.
  48. // thx ryszard, June,2000.
  49. /** Generic blob definition, with 8 byte aligned buffer **/
  50. /** Must be identical in form to the version in obase.idl **/
  51. /** This is here again because MIDL cannot tolerate our **/
  52. /** standard-issue /robust switch with encode/decode **/
  53. typedef struct tagCustomOpaqueData
  54. {
  55. GUID guid;
  56. unsigned long dataLength;
  57. unsigned long reserved1;
  58. unsigned long reserved2;
  59. [size_is((dataLength+7)&~7)] BYTE *data;
  60. } CustomOpaqueData;
  61. typedef struct tagInstantiationInfoData
  62. {
  63. CLSID classId;
  64. DWORD classCtx;
  65. DWORD actvflags;
  66. BOOL fIsSurrogate;
  67. DWORD cIID;
  68. DWORD instFlag;
  69. [size_is(cIID)] IID *pIID;
  70. DWORD thisSize;
  71. COMVERSION clientCOMVersion;
  72. } InstantiationInfoData;
  73. typedef struct tagLocationInfoData
  74. {
  75. [string] WCHAR *machineName;
  76. DWORD processId;
  77. APTID apartmentId;
  78. CTXTID contextId;
  79. } LocationInfoData;
  80. typedef struct tagActivationContextInfoData
  81. {
  82. BOOL clientOK;
  83. BOOL bReserved1;
  84. DWORD dwReserved1;
  85. DWORD dwReserved2;
  86. MInterfacePointer *pIFDClientCtx;
  87. MInterfacePointer *pIFDPrototypeCtx;
  88. } ActivationContextInfoData;
  89. typedef struct tagCustomHeader
  90. {
  91. DWORD totalSize;
  92. DWORD headerSize;
  93. DWORD cOpaqueData;
  94. DWORD destCtx;
  95. DWORD cIfs;
  96. CLSID classInfoClsid; //BUGBUG temporary for marshalling ClassInfo
  97. [size_is(cIfs)] CLSID *pclsid;
  98. [size_is(cIfs)] DWORD *pSizes;
  99. [size_is(cOpaqueData)] CustomOpaqueData *opaqueData;
  100. } CustomHeader;
  101. typedef struct tagPropsOutInfo
  102. {
  103. DWORD cIfs;
  104. [size_is(cIfs)] IID *piid;
  105. [size_is(cIfs)] HRESULT *phresults;
  106. [size_is(cIfs)] MInterfacePointer **ppIntfData;
  107. } PropsOutInfo;
  108. typedef struct tagSecurityInfoData
  109. {
  110. DWORD dwAuthnFlags;
  111. COSERVERINFO *pServerInfo;
  112. COAUTHIDENTITY *pAuthIdentityInfo;
  113. } SecurityInfoData;
  114. /** This is for input activation properties **/
  115. /** Must be identical to PRIV_SCM_INFO in actprops.idl **/
  116. typedef struct tagCustomPrivScmInfo
  117. {
  118. long Apartment;
  119. [string] WCHAR *pwszWinstaDesktop;
  120. ULONG64 ProcessSignature;
  121. [size_is(EnvBlockLength)]
  122. WCHAR * pEnvBlock;
  123. DWORD EnvBlockLength;
  124. } CustomPrivScmInfo;
  125. /** This is for output activation properties **/
  126. /** Must be identical to PRIV_RESOLVER_INFO in actprops.idl **/
  127. typedef struct tagCustomPrivResolverInfo
  128. {
  129. OXID OxidServer;
  130. DUALSTRINGARRAY * pServerORBindings;
  131. OXID_INFO OxidInfo;
  132. MID LocalMidOfRemote;
  133. DWORD DllServerModel;
  134. [string] WCHAR * pwszDllServer;
  135. BOOL FoundInROT;
  136. } CustomPrivResolverInfo;
  137. typedef struct tagScmRequestInfoData
  138. {
  139. CustomPrivScmInfo *pScmInfo;
  140. customREMOTE_REQUEST_SCM_INFO *remoteRequest;
  141. } ScmRequestInfoData;
  142. typedef struct tagScmReplyInfoData
  143. {
  144. CustomPrivResolverInfo *pResolverInfo;
  145. customREMOTE_REPLY_SCM_INFO *remoteReply;
  146. } ScmReplyInfoData;
  147. typedef struct tagInstanceInfoData
  148. {
  149. [string] WCHAR *fileName;
  150. DWORD mode;
  151. MInterfacePointer *ifdROT;
  152. MInterfacePointer *ifdStg;
  153. } InstanceInfoData;
  154. typedef struct tagMarshalledStgInfo
  155. {
  156. [unique] IStorage *pstg;
  157. } MarshalledStgInfo;
  158. // Bitflag values for the dwFlags member of
  159. // SpecialPropertiesData below.
  160. typedef enum
  161. {
  162. SPD_FLAG_USE_CONSOLE_SESSION = 0x00000001,
  163. } SPD_FLAGS;
  164. // NOTE: let's not be adding any more BOOLean properties
  165. // to this guy by using up an entire DWORD! Just define a
  166. // new bit flag for the dwFlags property and that should be
  167. // sufficient. (yes I am guilty too)
  168. typedef struct tagSpecialPropertiesData
  169. {
  170. ULONG dwSessionId;
  171. BOOL fRemoteThisSessionId;
  172. BOOL fClientImpersonating;
  173. BOOL fPartitionIDPresent; // Modification for partitions-Sajia
  174. BOOL fReserved3;
  175. GUID guidPartition; // Modification for partitions-Sajia
  176. DWORD dwPRTFlags; // process request type flags
  177. DWORD dwOrigClsctx;
  178. DWORD dwFlags;
  179. DWORD dwReserved[8];
  180. } SpecialPropertiesData;
  181. }