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