Mddefw.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:29k
- #pragma warning( disable: 4049 ) /* more than 64k source lines */
- /* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 6.00.0347 */
- /* Compiler settings for mddefw.idl:
- Oi, W1, Zp8, env=Win32 (32b run)
- protocol : dce , ms_ext, c_ext
- error checks: allocation ref
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
- */
- //@@MIDL_FILE_HEADING( )
- /* verify that the <rpcndr.h> version is high enough to compile this file*/
- #ifndef __REQUIRED_RPCNDR_H_VERSION__
- #define __REQUIRED_RPCNDR_H_VERSION__ 440
- #endif
- #include "rpc.h"
- #include "rpcndr.h"
- #ifndef __mddefw_h__
- #define __mddefw_h__
- #if defined(_MSC_VER) && (_MSC_VER >= 1020)
- #pragma once
- #endif
- /* Forward Declarations */
- /* header files for imported files */
- #include "unknwn.h"
- #ifdef __cplusplus
- extern "C"{
- #endif
- void * __RPC_USER MIDL_user_allocate(size_t);
- void __RPC_USER MIDL_user_free( void * );
- /* interface __MIDL_itf_mddefw_0000 */
- /* [local] */
- /*++
-
- Copyright (c) 1997-1999 Microsoft Corporation
-
- Module Name: mddef.h
-
- Definitions for Admin Objects and Metadata
-
- --*/
- #ifndef _MD_DEFW_
- #define _MD_DEFW_
- #include <mdmsg.h>
- #include <mdcommsg.h>
- /*
- Error Codes
-
- Metadata api's all return HRESULTS. Since internal results are either
- winerrors or Metadata specific return codes (see mdmsg.h), they are
- converted to HRESULTS using the RETURNCODETOHRESULT macro (see
- commsg.h).
- */
-
- /*
- Max Name Length
- The maximum number of characters in the length of a metaobject name,
- including the terminating NULL. This refers to each node in the tree,
- not the entire path.
- eg. strlen("Root") < METADATA_MAX_NAME_LEN
- */
- #define METADATA_MAX_NAME_LEN 256
- /*
- Access Permissons
- Permissions associated with handles of type METADATA_HANDLE
-
- METADATA_PERMISSION_READ - Allows reading metadata.
- METADATA_PERMISSION_WRITE - Allows writing metadata.
- */
- #define METADATA_PERMISSION_READ 0x00000001
- #define METADATA_PERMISSION_WRITE 0x00000002
- /*
- Data Types
-
- ALL_METADATA - Used on Get/Enum/Getall api's (ComMDGetMetaData,
- ComMDEnumMetaData, and ComMDGetAllMetaData), api's to allow getting
- all data. Not valid on the Set api.
-
- DWORD_METADATA - The data is an unsigned 32 bit value.
-
- STRING_METADATA - The data is a null terminated ASCII string.
-
- BINARY_METADATA - The data is any binary value.
-
- EXPANDSZ_METADATA - The data is a null terminated ASCII string.
- Clients are expected to treat this as an expandsz string.
-
- MULTISZ_METADATA - A series of NULL terminated ASCII strings. ending
- with 2 NULL's.
- */
- enum METADATATYPES
- { ALL_METADATA = 0,
- DWORD_METADATA = ALL_METADATA + 1,
- STRING_METADATA = DWORD_METADATA + 1,
- BINARY_METADATA = STRING_METADATA + 1,
- EXPANDSZ_METADATA = BINARY_METADATA + 1,
- MULTISZ_METADATA = EXPANDSZ_METADATA + 1,
- INVALID_END_METADATA = MULTISZ_METADATA + 1
- } ;
- /*
- Attributes - The flags for the data.
-
- METADATA_INHERIT - If set for a data item, the data item can be
- inherited. If set on input to the Get/Enum/Getall api's,
- (ComMDGetMetaData, ComMDEnumMetaData, and ComMDGetAllMetaData),
- inheritable data will be returned. If not set on input to the
- Get/Enum/Getall, inheritable data will not be returned.
-
- METADATA_PARTIAL_PATH - If set on input to Get/Enum/Getall api's, this
- routine will return ERROR_SUCCESS and the inherited data even if
- the entire path is not present. Only valid if METADATA_INHERIT is
- also set. Should not be set for data items on input the the Set api
- (ComMDSetMetaData).
-
- METADATA_SECURE - If set for a data item, the data is stored in a
- secure fasion. Should not be set on input to Get/Enum api's.
-
- METADATA_REFERENCE - If set for a data item, the data item may be
- gotten by reference. If set on input to Get/Enum/GetAll api's and
- set on a the data item being returned, the data is returned by
- reference. A pointer to the metadata server's copy of the data is
- placed in the Data field of the METADATA_RECORD or
- METADATA_GETALL_RECORD, and the DataTag field is set. This data must
- be freed by calling ComMDReleaseReferenceData. The client must not
- change this data. This flag must not be set on input to
- Get/Enum/Getall api's from remote clients.
-
- METADATA_VOLATILE - If set for a data item, the data item will not be
- saved to long term storage.
-
- METADATA_ISINHERITED - If specified on input to one of the get api's,
- the flag will be set on return if the data was inherited.
-
- METADATA_INSERT_PATH - If specified on input to one of the get api's,
- and on a string data item, the path relative to handle will replaced the
- string MD_INSERT_PATH_STRING in the string data.
-
- METADATA_LOCAL_MACHINE_ONLY - If set for a data item, the data item
- will not be replicated during web cluster replication.
-
- */
-
- #define METADATA_NO_ATTRIBUTES 0
- #define METADATA_INHERIT 0x00000001
- #define METADATA_PARTIAL_PATH 0x00000002
- #define METADATA_SECURE 0x00000004
- #define METADATA_REFERENCE 0x00000008
- #define METADATA_VOLATILE 0x00000010
- #define METADATA_ISINHERITED 0x00000020
- #define METADATA_INSERT_PATH 0x00000040
- #define METADATA_LOCAL_MACHINE_ONLY 0x00000080
-
- /*
- Backup Flags.
-
- MD_BACKUP_OVERWRITE - If set, the metabase will be backed up even if
- a backupe with the same name and version already exists. The
- existing backup will be overwritten.
-
- MD_BACKUP_SAVE_FIRST - If set backup will save the metabase prior to
- making the backup. If the save fails, backup behavior is dependent
- on the value of MD_BACKUP_FORCE_BACKUP.
-
- MD_BACKUP_FORCE_BACKUP - If set backup will proceed even if the save
- failed. Only valid if MD_BACKUP_SAVE_FIRST is set. If the save
- but the backup succeeds, a warning will be returned.
- */
-
- #define MD_BACKUP_OVERWRITE 0x00000001
- #define MD_BACKUP_SAVE_FIRST 0x00000002
- #define MD_BACKUP_FORCE_BACKUP 0x00000004
- /*
- Backup Version Defines.
-
- MD_BACKUP_NEXT_VERSION - For Backup, indicates use the next available
- backup version of the BackupLocation specified, ie. one higher than
- the highest existing version.
- Not valid for Restore or DeleteBackup.
-
- MD_BACKUP_HIGHEST_VERSION - For Backup, Restore, and DeleteBackup, will
- use the highest existing backup version of the BackupLocation
- specified.
-
- MD_BACKUP_MAX_VERSION - The highest allowed backup version number.
-
- MD_BACKUP_MAX_LEN - The maximup length, in UNICODE characters, of the
- BackupLocation.
- */
-
- #define MD_BACKUP_NEXT_VERSION 0xffffffff
- #define MD_BACKUP_HIGHEST_VERSION 0xfffffffe
- #define MD_BACKUP_MAX_VERSION 9999
- #define MD_BACKUP_MAX_LEN (100)
-
- /*
- Backup Location Defines.
-
- MD_DEFAULT_BACKUP_LOCATION - The default location to backup from or
- restore to if no location is specified.
- */
-
- #define MD_DEFAULT_BACKUP_LOCATION TEXT("MDBackUp")
-
- /*
- History Flags.
-
- MD_HISTORY_LATEST - The most recent history file by timestamp
- */
-
- #define MD_HISTORY_LATEST 0x00000001
-
- /*
- Export Flags.
-
- MD_EXPORT_INHERITED - If set, inherited properties will be backed up
- to special section in output file called IIsInheritedProperties.
- If not set, inherited properties are ignored.
-
- MD_EXPORT_NODE_ONLY - If set, children will not be exported.
- If not set, children will be exported.
- */
-
- #define MD_EXPORT_INHERITED 0x00000001
- #define MD_EXPORT_NODE_ONLY 0x00000002
-
- /*
- Import Flags.
-
- MD_IMPORT_INHERITED - If set, inherited properties will be imported.
-
- MD_IMPORT_NODE_ONLY - If set, children will not be imported.
- If not set, children will be imported.
-
- MD_IMPORT_MERGE - If set, imported settings overwrite existing
- settings, but entire node is not overwritten. If not set, entire
- node is clobbered.
- */
-
- #define MD_IMPORT_INHERITED 0x00000001
- #define MD_IMPORT_NODE_ONLY 0x00000002
- #define MD_IMPORT_MERGE 0x00000004
-
- /*
- Insert Path Defines.
- */
-
-
- #define MD_INSERT_PATH_STRINGA "<%INSERT_PATH%>"
- #define MD_INSERT_PATH_STRINGW L##"<%INSERT_PATH%>"
- #define MD_INSERT_PATH_STRING TEXT("<%INSERT_PATH%>")
-
- /*
- Handle Defines.
- */
-
- #define METADATA_MASTER_ROOT_HANDLE 0
-
- /*
- METADATA_RECORD is the basic input/output parameter for the set and get
- metadata api's. The Set api (ComMDSetMetaData) takes all fields as
- input, except DataTag. The Get/Enum api's (ComMDGetMetadata and
- ComMDEnumMetaData) take some of the fields as input, and fill in all
- fields as output.
-
- Identifier - The identifier of the data.
-
- Attributes - The flags for the data.
-
- UserType - The User Type for the data. This is a user defined field to allow
- users to group data. If set to anything other than ALL_METADATA on input
- to Get/Set apis, only metadata of the specified User Type will be
- returned.
-
- ALL_METADATA
-
- User Defined Values
-
- DataType - The Type of the data. Must be set to a valid value other than
- ALL_METADATA for each data item. If set to anything other than
- ALL_METADATA on input to Get/Set api's, only metadata of the
- specified Data Type will be returned.
- ALL_METADATA
- DWORD_METADATA
- STRING_METADATA
- BINARY_METADATA
- EXPANDSZ_METADATA
-
- DataLen - On input to the Set api, specifies the length of Data, in
- bytes. Inprocess clients only need to specify this for binary data.
- Remote clients need to specify this for all data types. For strings,
- this must include the trailing ' ', eg. strlen(string) + 1.
- On input to Get/Enum apis, specifies the size of the buffer pointed to
- by Data. On successful output from Get/Enum API's, specifies the size of
- Data in bytes.
-
- Data - On input to the Set api, points to the data. On input to the
- Get/Enum api's, points to a buffer to return the data in. On output
- from the Get/Enum api's, points to the data. If the data is not
- gotten by reference, the pointer will be unchanged.
-
- DataTag - A tag for reference data. Not used in the Set api. Not used on
- input to the Get/Enum api's. On successful return from the Get/Enum
- api's, this is set to a nonzero tag if the data was gotten by reference,
- and set to 0 if the data was not gotten by reference.
- */
- typedef struct _METADATA_RECORD
- {
- DWORD dwMDIdentifier;
- DWORD dwMDAttributes;
- DWORD dwMDUserType;
- DWORD dwMDDataType;
- DWORD dwMDDataLen;
- /* [size_is][unique] */ unsigned char *pbMDData;
- DWORD dwMDDataTag;
- } METADATA_RECORD;
- typedef struct _METADATA_RECORD *PMETADATA_RECORD;
- /*
- METADATA_GETALL_RECORD, is essentially the same as METADATA_RECORD, but is
- used by MDGetAllMetaData. It is used the same as the corresponding
- METADATA_RECORD values for the MDGetMetaData, with the following
- exceptions:
-
- MDGetAllMetadata does not take the structure as input, but takes parameters
- equivalent to Attributes, UserType, and DataType.
-
- On output, MDGetAllMetadata returns an array of METADATA_GETALL_RECORD.
-
- DataOffset/Data - If the data is not returned by reference, DataOffset
- contains the byte offset into the buffer provided. If the data is
- returned by reference, Data contains a pointer to the data.
-
-
- Because an opaque pointer to an array of _METADATA_GETALL_RECORD's is
- passed on calls to GetAllData, its size must be the same on x86 and ia64.
- So, the pbMDData member (not used by the public interface) has been
- removed and a new structure _METADATA_GETALL_INTERNAL_RECORD has been
- created for use by the callees of the internal interface
- */
- typedef struct _METADATA_GETALL_RECORD
- {
- DWORD dwMDIdentifier;
- DWORD dwMDAttributes;
- DWORD dwMDUserType;
- DWORD dwMDDataType;
- DWORD dwMDDataLen;
- DWORD dwMDDataOffset;
- DWORD dwMDDataTag;
- } METADATA_GETALL_RECORD;
- typedef struct _METADATA_GETALL_RECORD *PMETADATA_GETALL_RECORD;
- typedef struct _METADATA_GETALL_INTERNAL_RECORD
- {
- DWORD dwMDIdentifier;
- DWORD dwMDAttributes;
- DWORD dwMDUserType;
- DWORD dwMDDataType;
- DWORD dwMDDataLen;
- union
- {
- DWORD_PTR dwMDDataOffset;
- unsigned char *pbMDData;
- } ;
- DWORD dwMDDataTag;
- } METADATA_GETALL_INTERNAL_RECORD;
- typedef struct _METADATA_GETALL_INTERNAL_RECORD *PMETADATA_GETALL_INTERNAL_RECORD;
- typedef DWORD METADATA_HANDLE;
- typedef DWORD *PMETADATA_HANDLE;
- /*
- Handle Information
-
- Permissions - The permissions associated with the handle.
- METADATA_PERMISSION_READ
- METADATA_PERMISSION_WRITE
-
- SystemChangeNumber - The system change number at the time the handle was
- allocated.
- */
- typedef struct _METADATA_HANDLE_INFO
- {
- DWORD dwMDPermissions;
- DWORD dwMDSystemChangeNumber;
- } METADATA_HANDLE_INFO;
- typedef struct _METADATA_HANDLE_INFO *PMETADATA_HANDLE_INFO;
- /*
- Change Object - The structure passed to ComMDSinkNotify.
-
- Path - The path of the MetaObject modified.
-
- ChangeType - The types of changes made, from the flags below.
-
- NumDataIDs - The number of data id's changed.
-
- DataIDs - An array of the data id's changed.
- */
-
- #define MD_CHANGE_OBJECT MD_CHANGE_OBJECT_W
- #define PMD_CHANGE_OBJECT PMD_CHANGE_OBJECT_W
- typedef struct _MD_CHANGE_OBJECT_W
- {
- /* [string] */ LPWSTR pszMDPath;
- DWORD dwMDChangeType;
- DWORD dwMDNumDataIDs;
- /* [size_is][unique] */ DWORD *pdwMDDataIDs;
- } MD_CHANGE_OBJECT_W;
- typedef struct _MD_CHANGE_OBJECT_W *PMD_CHANGE_OBJECT_W;
- /*
-
- Change Types
-
- MD_CHANGE_TYPE_DELETE_OBJECT - The Meta Object was deleted.
-
- MD_CHANGE_TYPE_ADD_OBJECT - The Meta Object was added.
-
- MD_CHANGE_TYPE_SET_DATA - A data item was set.
-
- MD_CHANGE_TYPE_DELETE_DATA - A data item was deleted.
-
- MD_CHANGE_TYPE_RENAME_OBJECT - The Meta Object was renamed.
-
- */
- #define MD_CHANGE_TYPE_DELETE_OBJECT 0x00000001
- #define MD_CHANGE_TYPE_ADD_OBJECT 0x00000002
- #define MD_CHANGE_TYPE_SET_DATA 0x00000004
- #define MD_CHANGE_TYPE_DELETE_DATA 0x00000008
- #define MD_CHANGE_TYPE_RENAME_OBJECT 0x00000010
- /*
-
- Max Change Entries - The maximum number of change entries that will be sent on
- a single call to IMDCOMSINK::ComMDSinkNotify. If more notifications are
- required, IMDCOMSINK::ComMDSinkNotify will be called multiple times.
- */
- #define MD_MAX_CHANGE_ENTRIES 100
- #endif
- extern RPC_IF_HANDLE __MIDL_itf_mddefw_0000_v0_0_c_ifspec;
- extern RPC_IF_HANDLE __MIDL_itf_mddefw_0000_v0_0_s_ifspec;
- /* Additional Prototypes for ALL interfaces */
- /* end of Additional Prototypes */
- #ifdef __cplusplus
- }
- #endif
- #endif