master
  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
 23extern "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