Leaked source code of windows server 2003
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.

487 lines
30 KiB

  1. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  2. /* File created by MIDL compiler version 6.00.0361 */
  3. /* Compiler settings for mddefw.idl:
  4. Oicf, W1, Zp8, env=Win32 (32b run)
  5. protocol : dce , ms_ext, c_ext, robust
  6. error checks: allocation ref bounds_check enum stub_data
  7. VC __declspec() decoration level:
  8. __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  9. DECLSPEC_UUID(), MIDL_INTERFACE()
  10. */
  11. //@@MIDL_FILE_HEADING( )
  12. #pragma warning( disable: 4049 ) /* more than 64k source lines */
  13. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  14. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  15. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  16. #endif
  17. #include "rpc.h"
  18. #include "rpcndr.h"
  19. #ifndef __RPCNDR_H_VERSION__
  20. #error this stub requires an updated version of <rpcndr.h>
  21. #endif // __RPCNDR_H_VERSION__
  22. #ifndef __mddefw_h__
  23. #define __mddefw_h__
  24. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  25. #pragma once
  26. #endif
  27. /* Forward Declarations */
  28. /* header files for imported files */
  29. #include "unknwn.h"
  30. #ifdef __cplusplus
  31. extern "C"{
  32. #endif
  33. void * __RPC_USER MIDL_user_allocate(size_t);
  34. void __RPC_USER MIDL_user_free( void * );
  35. /* interface __MIDL_itf_mddefw_0000 */
  36. /* [local] */
  37. /*++
  38. Copyright (c) 1997-1999 Microsoft Corporation
  39. Module Name: mddef.h
  40. Definitions for Admin Objects and Metadata
  41. --*/
  42. #ifndef _MD_DEFW_
  43. #define _MD_DEFW_
  44. #include <mdmsg.h>
  45. #include <mdcommsg.h>
  46. /*
  47. Error Codes
  48. Metadata api's all return HRESULTS. Since internal results are either
  49. winerrors or Metadata specific return codes (see mdmsg.h), they are
  50. converted to HRESULTS using the RETURNCODETOHRESULT macro (see
  51. commsg.h).
  52. */
  53. /*
  54. Max Name Length
  55. The maximum number of characters in the length of a metaobject name,
  56. including the terminating NULL. This refers to each node in the tree,
  57. not the entire path.
  58. eg. strlen("Root") < METADATA_MAX_NAME_LEN
  59. */
  60. #define METADATA_MAX_NAME_LEN 256
  61. /*
  62. Access Permissons
  63. Permissions associated with handles of type METADATA_HANDLE
  64. METADATA_PERMISSION_READ - Allows reading metadata.
  65. METADATA_PERMISSION_WRITE - Allows writing metadata.
  66. */
  67. #define METADATA_PERMISSION_READ 0x00000001
  68. #define METADATA_PERMISSION_WRITE 0x00000002
  69. /*
  70. Data Types
  71. ALL_METADATA - Used on Get/Enum/Getall api's (ComMDGetMetaData,
  72. ComMDEnumMetaData, and ComMDGetAllMetaData), api's to allow getting
  73. all data. Not valid on the Set api.
  74. DWORD_METADATA - The data is an unsigned 32 bit value.
  75. STRING_METADATA - The data is a null terminated ASCII string.
  76. BINARY_METADATA - The data is any binary value.
  77. EXPANDSZ_METADATA - The data is a null terminated ASCII string.
  78. Clients are expected to treat this as an expandsz string.
  79. MULTISZ_METADATA - A series of NULL terminated ASCII strings. ending
  80. with 2 NULL's.
  81. */
  82. enum METADATATYPES
  83. { ALL_METADATA = 0,
  84. DWORD_METADATA = ALL_METADATA + 1,
  85. STRING_METADATA = DWORD_METADATA + 1,
  86. BINARY_METADATA = STRING_METADATA + 1,
  87. EXPANDSZ_METADATA = BINARY_METADATA + 1,
  88. MULTISZ_METADATA = EXPANDSZ_METADATA + 1,
  89. INVALID_END_METADATA = MULTISZ_METADATA + 1
  90. } ;
  91. /*
  92. Attributes - The flags for the data.
  93. METADATA_INHERIT - If set for a data item, the data item can be
  94. inherited. If set on input to the Get/Enum/Getall api's,
  95. (ComMDGetMetaData, ComMDEnumMetaData, and ComMDGetAllMetaData),
  96. inheritable data will be returned. If not set on input to the
  97. Get/Enum/Getall, inheritable data will not be returned.
  98. METADATA_PARTIAL_PATH - If set on input to Get/Enum/Getall api's, this
  99. routine will return ERROR_SUCCESS and the inherited data even if
  100. the entire path is not present. Only valid if METADATA_INHERIT is
  101. also set. Should not be set for data items on input the the Set api
  102. (ComMDSetMetaData).
  103. METADATA_SECURE - If set for a data item, the data is stored in a
  104. secure fasion. Should not be set on input to Get/Enum api's.
  105. METADATA_REFERENCE - If set for a data item, the data item may be
  106. gotten by reference. If set on input to Get/Enum/GetAll api's and
  107. set on a the data item being returned, the data is returned by
  108. reference. A pointer to the metadata server's copy of the data is
  109. placed in the Data field of the METADATA_RECORD or
  110. METADATA_GETALL_RECORD, and the DataTag field is set. This data must
  111. be freed by calling ComMDReleaseReferenceData. The client must not
  112. change this data. This flag must not be set on input to
  113. Get/Enum/Getall api's from remote clients.
  114. METADATA_VOLATILE - If set for a data item, the data item will not be
  115. saved to long term storage.
  116. METADATA_ISINHERITED - If specified on input to one of the get api's,
  117. the flag will be set on return if the data was inherited.
  118. METADATA_INSERT_PATH - If specified on input to one of the get api's,
  119. and on a string data item, the path relative to handle will replaced the
  120. string MD_INSERT_PATH_STRING in the string data.
  121. METADATA_LOCAL_MACHINE_ONLY - If set for a data item, the data item
  122. will not be replicated during web cluster replication.
  123. METADATA_NON_SECURE_ONLY - When using GetAll api, do not
  124. retrieve properties which are secure.
  125. */
  126. #define METADATA_NO_ATTRIBUTES 0
  127. #define METADATA_INHERIT 0x00000001
  128. #define METADATA_PARTIAL_PATH 0x00000002
  129. #define METADATA_SECURE 0x00000004
  130. #define METADATA_REFERENCE 0x00000008
  131. #define METADATA_VOLATILE 0x00000010
  132. #define METADATA_ISINHERITED 0x00000020
  133. #define METADATA_INSERT_PATH 0x00000040
  134. #define METADATA_LOCAL_MACHINE_ONLY 0x00000080
  135. #define METADATA_NON_SECURE_ONLY 0x00000100
  136. /*
  137. Backup Flags.
  138. MD_BACKUP_OVERWRITE - If set, the metabase will be backed up even if
  139. a backupe with the same name and version already exists. The
  140. existing backup will be overwritten.
  141. MD_BACKUP_SAVE_FIRST - If set backup will save the metabase prior to
  142. making the backup. If the save fails, backup behavior is dependent
  143. on the value of MD_BACKUP_FORCE_BACKUP.
  144. MD_BACKUP_FORCE_BACKUP - If set backup will proceed even if the save
  145. failed. Only valid if MD_BACKUP_SAVE_FIRST is set. If the save
  146. but the backup succeeds, a warning will be returned.
  147. */
  148. #define MD_BACKUP_OVERWRITE 0x00000001
  149. #define MD_BACKUP_SAVE_FIRST 0x00000002
  150. #define MD_BACKUP_FORCE_BACKUP 0x00000004
  151. /*
  152. Backup Version Defines.
  153. MD_BACKUP_NEXT_VERSION - For Backup, indicates use the next available
  154. backup version of the BackupLocation specified, ie. one higher than
  155. the highest existing version.
  156. Not valid for Restore or DeleteBackup.
  157. MD_BACKUP_HIGHEST_VERSION - For Backup, Restore, and DeleteBackup, will
  158. use the highest existing backup version of the BackupLocation
  159. specified.
  160. MD_BACKUP_MAX_VERSION - The highest allowed backup version number.
  161. MD_BACKUP_MAX_LEN - The maximup length, in UNICODE characters, of the
  162. BackupLocation.
  163. */
  164. #define MD_BACKUP_NEXT_VERSION 0xffffffff
  165. #define MD_BACKUP_HIGHEST_VERSION 0xfffffffe
  166. #define MD_BACKUP_MAX_VERSION 9999
  167. #define MD_BACKUP_MAX_LEN (100)
  168. /*
  169. Backup Location Defines.
  170. MD_DEFAULT_BACKUP_LOCATION - The default location to backup from or
  171. restore to if no location is specified.
  172. */
  173. #define MD_DEFAULT_BACKUP_LOCATION TEXT("MDBackUp")
  174. /*
  175. History Flags.
  176. MD_HISTORY_LATEST - The most recent history file by timestamp
  177. */
  178. #define MD_HISTORY_LATEST 0x00000001
  179. /*
  180. Export Flags.
  181. MD_EXPORT_INHERITED - If set, inherited properties will be backed up
  182. to special section in output file called IIsInheritedProperties.
  183. If not set, inherited properties are ignored.
  184. MD_EXPORT_NODE_ONLY - If set, children will not be exported.
  185. If not set, children will be exported.
  186. */
  187. #define MD_EXPORT_INHERITED 0x00000001
  188. #define MD_EXPORT_NODE_ONLY 0x00000002
  189. /*
  190. Import Flags.
  191. MD_IMPORT_INHERITED - If set, inherited properties will be imported.
  192. MD_IMPORT_NODE_ONLY - If set, children will not be imported.
  193. If not set, children will be imported.
  194. MD_IMPORT_MERGE - If set, imported settings overwrite existing
  195. settings, but entire node is not overwritten. If not set, entire
  196. node is clobbered.
  197. */
  198. #define MD_IMPORT_INHERITED 0x00000001
  199. #define MD_IMPORT_NODE_ONLY 0x00000002
  200. #define MD_IMPORT_MERGE 0x00000004
  201. /*
  202. Insert Path Defines.
  203. */
  204. #define MD_INSERT_PATH_STRINGA "<%INSERT_PATH%>"
  205. #define MD_INSERT_PATH_STRINGW L##"<%INSERT_PATH%>"
  206. #define MD_INSERT_PATH_STRING TEXT("<%INSERT_PATH%>")
  207. /*
  208. Handle Defines.
  209. */
  210. #define METADATA_MASTER_ROOT_HANDLE 0
  211. /*
  212. METADATA_RECORD is the basic input/output parameter for the set and get
  213. metadata api's. The Set api (ComMDSetMetaData) takes all fields as
  214. input, except DataTag. The Get/Enum api's (ComMDGetMetadata and
  215. ComMDEnumMetaData) take some of the fields as input, and fill in all
  216. fields as output.
  217. Identifier - The identifier of the data.
  218. Attributes - The flags for the data.
  219. UserType - The User Type for the data. This is a user defined field to allow
  220. users to group data. If set to anything other than ALL_METADATA on input
  221. to Get/Set apis, only metadata of the specified User Type will be
  222. returned.
  223. ALL_METADATA
  224. User Defined Values
  225. DataType - The Type of the data. Must be set to a valid value other than
  226. ALL_METADATA for each data item. If set to anything other than
  227. ALL_METADATA on input to Get/Set api's, only metadata of the
  228. specified Data Type will be returned.
  229. ALL_METADATA
  230. DWORD_METADATA
  231. STRING_METADATA
  232. BINARY_METADATA
  233. EXPANDSZ_METADATA
  234. DataLen - On input to the Set api, specifies the length of Data, in
  235. bytes. Inprocess clients only need to specify this for binary data.
  236. Remote clients need to specify this for all data types. For strings,
  237. this must include the trailing '\0', eg. strlen(string) + 1.
  238. On input to Get/Enum apis, specifies the size of the buffer pointed to
  239. by Data. On successful output from Get/Enum API's, specifies the size of
  240. Data in bytes.
  241. Data - On input to the Set api, points to the data. On input to the
  242. Get/Enum api's, points to a buffer to return the data in. On output
  243. from the Get/Enum api's, points to the data. If the data is not
  244. gotten by reference, the pointer will be unchanged.
  245. DataTag - A tag for reference data. Not used in the Set api. Not used on
  246. input to the Get/Enum api's. On successful return from the Get/Enum
  247. api's, this is set to a nonzero tag if the data was gotten by reference,
  248. and set to 0 if the data was not gotten by reference.
  249. */
  250. typedef struct _METADATA_RECORD
  251. {
  252. DWORD dwMDIdentifier;
  253. DWORD dwMDAttributes;
  254. DWORD dwMDUserType;
  255. DWORD dwMDDataType;
  256. DWORD dwMDDataLen;
  257. /* [size_is][unique] */ unsigned char *pbMDData;
  258. DWORD dwMDDataTag;
  259. } METADATA_RECORD;
  260. typedef struct _METADATA_RECORD *PMETADATA_RECORD;
  261. /*
  262. METADATA_GETALL_RECORD, is essentially the same as METADATA_RECORD, but is
  263. used by MDGetAllMetaData. It is used the same as the corresponding
  264. METADATA_RECORD values for the MDGetMetaData, with the following
  265. exceptions:
  266. MDGetAllMetadata does not take the structure as input, but takes parameters
  267. equivalent to Attributes, UserType, and DataType.
  268. On output, MDGetAllMetadata returns an array of METADATA_GETALL_RECORD.
  269. DataOffset/Data - If the data is not returned by reference, DataOffset
  270. contains the byte offset into the buffer provided. If the data is
  271. returned by reference, Data contains a pointer to the data.
  272. Because an opaque pointer to an array of _METADATA_GETALL_RECORD's is
  273. passed on calls to GetAllData, its size must be the same on x86 and ia64.
  274. So, the pbMDData member (not used by the public interface) has been
  275. removed and a new structure _METADATA_GETALL_INTERNAL_RECORD has been
  276. created for use by the callees of the internal interface
  277. */
  278. typedef struct _METADATA_GETALL_RECORD
  279. {
  280. DWORD dwMDIdentifier;
  281. DWORD dwMDAttributes;
  282. DWORD dwMDUserType;
  283. DWORD dwMDDataType;
  284. DWORD dwMDDataLen;
  285. DWORD dwMDDataOffset;
  286. DWORD dwMDDataTag;
  287. } METADATA_GETALL_RECORD;
  288. typedef struct _METADATA_GETALL_RECORD *PMETADATA_GETALL_RECORD;
  289. typedef struct _METADATA_GETALL_INTERNAL_RECORD
  290. {
  291. DWORD dwMDIdentifier;
  292. DWORD dwMDAttributes;
  293. DWORD dwMDUserType;
  294. DWORD dwMDDataType;
  295. DWORD dwMDDataLen;
  296. union
  297. {
  298. DWORD_PTR dwMDDataOffset;
  299. unsigned char *pbMDData;
  300. } ;
  301. DWORD dwMDDataTag;
  302. } METADATA_GETALL_INTERNAL_RECORD;
  303. typedef struct _METADATA_GETALL_INTERNAL_RECORD *PMETADATA_GETALL_INTERNAL_RECORD;
  304. typedef DWORD METADATA_HANDLE;
  305. typedef DWORD *PMETADATA_HANDLE;
  306. /*
  307. Handle Information
  308. Permissions - The permissions associated with the handle.
  309. METADATA_PERMISSION_READ
  310. METADATA_PERMISSION_WRITE
  311. SystemChangeNumber - The system change number at the time the handle was
  312. allocated.
  313. */
  314. typedef struct _METADATA_HANDLE_INFO
  315. {
  316. DWORD dwMDPermissions;
  317. DWORD dwMDSystemChangeNumber;
  318. } METADATA_HANDLE_INFO;
  319. typedef struct _METADATA_HANDLE_INFO *PMETADATA_HANDLE_INFO;
  320. /*
  321. Change Object - The structure passed to ComMDSinkNotify.
  322. Path - The path of the MetaObject modified.
  323. ChangeType - The types of changes made, from the flags below.
  324. NumDataIDs - The number of data id's changed.
  325. DataIDs - An array of the data id's changed.
  326. */
  327. #define MD_CHANGE_OBJECT MD_CHANGE_OBJECT_W
  328. #define PMD_CHANGE_OBJECT PMD_CHANGE_OBJECT_W
  329. typedef struct _MD_CHANGE_OBJECT_W
  330. {
  331. /* [string] */ LPWSTR pszMDPath;
  332. DWORD dwMDChangeType;
  333. DWORD dwMDNumDataIDs;
  334. /* [size_is][unique] */ DWORD *pdwMDDataIDs;
  335. } MD_CHANGE_OBJECT_W;
  336. typedef struct _MD_CHANGE_OBJECT_W *PMD_CHANGE_OBJECT_W;
  337. /*
  338. Change Types
  339. MD_CHANGE_TYPE_DELETE_OBJECT - The Meta Object was deleted.
  340. MD_CHANGE_TYPE_ADD_OBJECT - The Meta Object was added.
  341. MD_CHANGE_TYPE_SET_DATA - A data item was set.
  342. MD_CHANGE_TYPE_DELETE_DATA - A data item was deleted.
  343. MD_CHANGE_TYPE_RENAME_OBJECT - The Meta Object was renamed.
  344. */
  345. #define MD_CHANGE_TYPE_DELETE_OBJECT 0x00000001
  346. #define MD_CHANGE_TYPE_ADD_OBJECT 0x00000002
  347. #define MD_CHANGE_TYPE_SET_DATA 0x00000004
  348. #define MD_CHANGE_TYPE_DELETE_DATA 0x00000008
  349. #define MD_CHANGE_TYPE_RENAME_OBJECT 0x00000010
  350. /*
  351. Max Change Entries - The maximum number of change entries that will be sent on
  352. a single call to IMDCOMSINK::ComMDSinkNotify. If more notifications are
  353. required, IMDCOMSINK::ComMDSinkNotify will be called multiple times.
  354. */
  355. #define MD_MAX_CHANGE_ENTRIES 100
  356. #endif
  357. extern RPC_IF_HANDLE __MIDL_itf_mddefw_0000_v0_0_c_ifspec;
  358. extern RPC_IF_HANDLE __MIDL_itf_mddefw_0000_v0_0_s_ifspec;
  359. /* Additional Prototypes for ALL interfaces */
  360. /* end of Additional Prototypes */
  361. #ifdef __cplusplus
  362. }
  363. #endif
  364. #endif