1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 #ifndef __REQUIRED_RPCNDR_H_VERSION__ 7 #define __REQUIRED_RPCNDR_H_VERSION__ 475 8 #endif 9 10 #include "rpc.h" 11 #include "rpcndr.h" 12 13 #ifndef __RPCNDR_H_VERSION__ 14 #error This stub requires an updated version of <rpcndr.h> 15 #endif 16 17 #ifndef __mddefw_h__ 18 #define __mddefw_h__ 19 20 #include "unknwn.h" 21 22 #ifdef __cplusplus 23 extern "C" { 24 #endif 25 26 #ifndef __MIDL_user_allocate_free_DEFINED__ 27 #define __MIDL_user_allocate_free_DEFINED__ 28 void *__RPC_API MIDL_user_allocate(size_t); 29 void __RPC_API MIDL_user_free(void *); 30 #endif 31 32 #ifndef _MD_DEFW_ 33 #define _MD_DEFW_ 34 #include <mdmsg.h> 35 #include <mdcommsg.h> 36 37 #define METADATA_MAX_NAME_LEN 256 38 39 #define METADATA_PERMISSION_READ 0x00000001 40 #define METADATA_PERMISSION_WRITE 0x00000002 41 42 enum METADATATYPES { 43 ALL_METADATA = 0,DWORD_METADATA,STRING_METADATA,BINARY_METADATA, 44 EXPANDSZ_METADATA,MULTISZ_METADATA,INVALID_END_METADATA 45 }; 46 47 #define METADATA_NO_ATTRIBUTES 0 48 #define METADATA_INHERIT 0x00000001 49 #define METADATA_PARTIAL_PATH 0x00000002 50 #define METADATA_SECURE 0x00000004 51 #define METADATA_REFERENCE 0x00000008 52 #define METADATA_VOLATILE 0x00000010 53 #define METADATA_ISINHERITED 0x00000020 54 #define METADATA_INSERT_PATH 0x00000040 55 #define METADATA_LOCAL_MACHINE_ONLY 0x00000080 56 #define METADATA_NON_SECURE_ONLY 0x00000100 57 58 #define MD_BACKUP_OVERWRITE 0x00000001 59 #define MD_BACKUP_SAVE_FIRST 0x00000002 60 #define MD_BACKUP_FORCE_BACKUP 0x00000004 61 62 #define MD_BACKUP_NEXT_VERSION 0xffffffff 63 #define MD_BACKUP_HIGHEST_VERSION 0xfffffffe 64 #define MD_BACKUP_MAX_VERSION 9999 65 #define MD_BACKUP_MAX_LEN (100) 66 67 #define MD_DEFAULT_BACKUP_LOCATION TEXT("MDBackUp") 68 69 #define MD_HISTORY_LATEST 0x00000001 70 71 #define MD_EXPORT_INHERITED 0x00000001 72 #define MD_EXPORT_NODE_ONLY 0x00000002 73 74 #define MD_IMPORT_INHERITED 0x00000001 75 #define MD_IMPORT_NODE_ONLY 0x00000002 76 #define MD_IMPORT_MERGE 0x00000004 77 78 #define MD_INSERT_PATH_STRINGA "<%INSERT_PATH%>" 79 #define MD_INSERT_PATH_STRINGW L##"<%INSERT_PATH%>" 80 #define MD_INSERT_PATH_STRING TEXT("<%INSERT_PATH%>") 81 82 #define METADATA_MASTER_ROOT_HANDLE 0 83 84 typedef struct _METADATA_RECORD { 85 DWORD dwMDIdentifier; 86 DWORD dwMDAttributes; 87 DWORD dwMDUserType; 88 DWORD dwMDDataType; 89 DWORD dwMDDataLen; 90 unsigned char *pbMDData; 91 DWORD dwMDDataTag; 92 } METADATA_RECORD; 93 94 typedef struct _METADATA_RECORD *PMETADATA_RECORD; 95 96 typedef struct _METADATA_GETALL_RECORD { 97 DWORD dwMDIdentifier; 98 DWORD dwMDAttributes; 99 DWORD dwMDUserType; 100 DWORD dwMDDataType; 101 DWORD dwMDDataLen; 102 DWORD dwMDDataOffset; 103 DWORD dwMDDataTag; 104 } METADATA_GETALL_RECORD; 105 106 typedef struct _METADATA_GETALL_RECORD *PMETADATA_GETALL_RECORD; 107 108 typedef struct _METADATA_GETALL_INTERNAL_RECORD { 109 DWORD dwMDIdentifier; 110 DWORD dwMDAttributes; 111 DWORD dwMDUserType; 112 DWORD dwMDDataType; 113 DWORD dwMDDataLen; 114 union { 115 DWORD_PTR dwMDDataOffset; 116 unsigned char *pbMDData; 117 }; 118 DWORD dwMDDataTag; 119 } METADATA_GETALL_INTERNAL_RECORD; 120 121 typedef struct _METADATA_GETALL_INTERNAL_RECORD *PMETADATA_GETALL_INTERNAL_RECORD; 122 typedef DWORD METADATA_HANDLE; 123 typedef DWORD *PMETADATA_HANDLE; 124 125 typedef struct _METADATA_HANDLE_INFO { 126 DWORD dwMDPermissions; 127 DWORD dwMDSystemChangeNumber; 128 } METADATA_HANDLE_INFO; 129 130 typedef struct _METADATA_HANDLE_INFO *PMETADATA_HANDLE_INFO; 131 132 #define MD_CHANGE_OBJECT MD_CHANGE_OBJECT_W 133 #define PMD_CHANGE_OBJECT PMD_CHANGE_OBJECT_W 134 typedef struct _MD_CHANGE_OBJECT_W { 135 LPWSTR pszMDPath; 136 DWORD dwMDChangeType; 137 DWORD dwMDNumDataIDs; 138 DWORD *pdwMDDataIDs; 139 } MD_CHANGE_OBJECT_W; 140 141 typedef struct _MD_CHANGE_OBJECT_W *PMD_CHANGE_OBJECT_W; 142 143 #define MD_CHANGE_TYPE_DELETE_OBJECT 0x00000001 144 #define MD_CHANGE_TYPE_ADD_OBJECT 0x00000002 145 #define MD_CHANGE_TYPE_SET_DATA 0x00000004 146 #define MD_CHANGE_TYPE_DELETE_DATA 0x00000008 147 #define MD_CHANGE_TYPE_RENAME_OBJECT 0x00000010 148 149 #define MD_MAX_CHANGE_ENTRIES 100 150 #endif 151 152 extern RPC_IF_HANDLE __MIDL_itf_mddefw_0000_v0_0_c_ifspec; 153 extern RPC_IF_HANDLE __MIDL_itf_mddefw_0000_v0_0_s_ifspec; 154 155 #ifdef __cplusplus 156 } 157 #endif 158 #endif 159