]> git.proxmox.com Git - rustc.git/blame - vendor/winapi-0.2.8/src/vswriter.rs
New upstream version 1.42.0+dfsg1
[rustc.git] / vendor / winapi-0.2.8 / src / vswriter.rs
CommitLineData
e1599b0c
XL
1// Copyright © 2015, Brian Vincent
2// Licensed under the MIT License <LICENSE.md>
3//! VSS Writer header file
4ENUM!{enum VSS_USAGE_TYPE {
5 VSS_UT_UNDEFINED = 0,
6 VSS_UT_BOOTABLESYSTEMSTATE = 1,
7 VSS_UT_SYSTEMSERVICE = 2,
8 VSS_UT_USERDATA = 3,
9 VSS_UT_OTHER = 4,
10}}
11ENUM!{enum VSS_SOURCE_TYPE {
12 VSS_ST_UNDEFINED = 0,
13 VSS_ST_TRANSACTEDDB = 1,
14 VSS_ST_NONTRANSACTEDDB = 2,
15 VSS_ST_OTHER = 3,
16}}
17ENUM!{enum VSS_RESTOREMETHOD_ENUM {
18 VSS_RME_UNDEFINED = 0,
19 VSS_RME_RESTORE_IF_NOT_THERE = 1,
20 VSS_RME_RESTORE_IF_CAN_REPLACE = 2,
21 VSS_RME_STOP_RESTORE_START = 3,
22 VSS_RME_RESTORE_TO_ALTERNATE_LOCATION = 4,
23 VSS_RME_RESTORE_AT_REBOOT = 5,
24 VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE = 6,
25 VSS_RME_CUSTOM = 7,
26 VSS_RME_RESTORE_STOP_START = 8,
27}}
28ENUM!{enum VSS_WRITERRESTORE_ENUM {
29 VSS_WRE_UNDEFINED = 0,
30 VSS_WRE_NEVER = 1,
31 VSS_WRE_IF_REPLACE_FAILS = 2,
32 VSS_WRE_ALWAYS = 3,
33}}
34ENUM!{enum VSS_COMPONENT_TYPE {
35 VSS_CT_UNDEFINED = 0,
36 VSS_CT_DATABASE = 1,
37 VSS_CT_FILEGROUP = 2,
38}}
39ENUM!{enum VSS_ALTERNATE_WRITER_STATE {
40 VSS_AWS_UNDEFINED = 0,
41 VSS_AWS_NO_ALTERNATE_WRITER = 1,
42 VSS_AWS_ALTERNATE_WRITER_EXISTS = 2,
43 VSS_AWS_THIS_IS_ALTERNATE_WRITER = 3,
44}}
45pub type VSS_SUBSCRIBE_MASK = ::DWORD;
46pub const VSS_SM_POST_SNAPSHOT_FLAG: ::DWORD = 0x00000001;
47pub const VSS_SM_BACKUP_EVENTS_FLAG: ::DWORD = 0x00000002;
48pub const VSS_SM_RESTORE_EVENTS_FLAG: ::DWORD = 0x00000004;
49pub const VSS_SM_IO_THROTTLING_FLAG: ::DWORD = 0x00000008;
50pub const VSS_SM_ALL_FLAGS: ::DWORD = 0xffffffff;
51ENUM!{enum VSS_RESTORE_TARGET {
52 VSS_RT_UNDEFINED = 0,
53 VSS_RT_ORIGINAL = 1,
54 VSS_RT_ALTERNATE = 2,
55 VSS_RT_DIRECTED = 3,
56 VSS_RT_ORIGINAL_LOCATION = 4,
57}}
58ENUM!{enum VSS_FILE_RESTORE_STATUS {
59 VSS_RS_UNDEFINED = 0,
60 VSS_RS_NONE = 1,
61 VSS_RS_ALL = 2,
62 VSS_RS_FAILED = 3,
63}}
64pub type VSS_COMPONENT_FLAGS = ::DWORD;
65pub const VSS_CF_BACKUP_RECOVERY: ::DWORD = 0x00000001;
66pub const VSS_CF_APP_ROLLBACK_RECOVERY: ::DWORD = 0x00000002;
67pub const VSS_CF_NOT_SYSTEM_STATE: ::DWORD = 0x00000004;
68RIDL!(
69interface IVssWMFiledesc(IVssWMFiledescVtbl): IUnknown(IUnknownVtbl) {
70 fn GetPath(&mut self, pbstrPath: *mut ::BSTR) -> ::HRESULT,
71 fn GetFilespec(&mut self, pbstrFilespec: *mut ::BSTR) -> ::HRESULT,
72 fn GetRecursive(&mut self, pbRecursive: *mut bool) -> ::HRESULT,
73 fn GetAlternateLocation(&mut self, pbstrAlternateLocation: *mut ::BSTR) -> ::HRESULT,
74 fn GetBackupTypeMask(&mut self, pdwTypeMask: *mut ::DWORD) -> ::HRESULT
75}
76);
77RIDL!(
78interface IVssWMDependency(IVssWMDependencyVtbl): IUnknown(IUnknownVtbl) {
79 fn GetWriterId(&mut self, pWriterId: *mut ::VSS_ID) -> ::HRESULT,
80 fn GetLogicalPath(&mut self, pbstrLogicalPath: *mut ::BSTR) -> ::HRESULT,
81 fn GetComponentName(&mut self, pbstrComponentName: *mut ::BSTR) -> ::HRESULT
82}
83);
84RIDL!(
85interface IVssComponent(IVssComponentVtbl): IUnknown(IUnknownVtbl) {
86 fn GetLogicalPath(&mut self, pbstrPath: *mut ::BSTR) -> ::HRESULT,
87 fn GetComponentType(&mut self, pct: *mut ::VSS_COMPONENT_TYPE) -> ::HRESULT,
88 fn GetComponentName(&mut self, pbstrName: *mut ::BSTR) -> ::HRESULT,
89 fn GetBackupSucceeded(&mut self, pbSucceeded: *mut bool) -> ::HRESULT,
90 fn GetAlternateLocationMappingCount(&mut self, pcMappings: *mut ::UINT) -> ::HRESULT,
91 fn GetAlternateLocationMapping(
92 &mut self, iMapping: ::UINT, ppFiledesc: *mut *mut ::IVssWMFiledesc
93 ) -> ::HRESULT,
94 fn SetBackupMetadata(&mut self, wszData: ::LPCWSTR) -> ::HRESULT,
95 fn GetBackupMetadata(&mut self, pbstrData: *mut ::BSTR) -> ::HRESULT,
96 fn AddPartialFile(
97 &mut self, wszPath: ::LPCWSTR, wszFilename: ::LPCWSTR, wszRanges: ::LPCWSTR,
98 wszMetadata: ::LPCWSTR
99 ) -> ::HRESULT,
100 fn GetPartialFileCount(&mut self, pcPartialFiles: *mut ::UINT) -> ::HRESULT,
101 fn GetPartialFile(
102 &mut self, iPartialFile: ::UINT, pbstrPath: *mut ::BSTR, pbstrFilename: *mut ::BSTR,
103 pbstrRange: *mut ::BSTR, pbstrMetadata: *mut ::BSTR
104 ) -> ::HRESULT,
105 fn IsSelectedForRestore(&mut self, pbSelectedForRestore: *mut bool) -> ::HRESULT,
106 fn GetAdditionalRestores(&mut self, pbAdditionalRestores: *mut bool) -> ::HRESULT,
107 fn GetNewTargetCount(&mut self, pcNewTarget: *mut ::UINT) -> ::HRESULT,
108 fn GetNewTarget(
109 &mut self, iNewTarget: ::UINT, ppFiledesc: *mut *mut ::IVssWMFiledesc
110 ) -> ::HRESULT,
111 fn AddDirectedTarget(
112 &mut self, wszSourcePath: ::LPCWSTR, wszSourceFilename: ::LPCWSTR,
113 wszSourceRangeList: ::LPCWSTR, wszDestinationPath: ::LPCWSTR,
114 wszDestinationFilename: ::LPCWSTR, wszDestinationRangeList: ::LPCWSTR
115 ) -> ::HRESULT,
116 fn GetDirectedTargetCount(&mut self, pcDirectedTarget: *mut ::UINT) -> ::HRESULT,
117 fn GetDirectedTarget(
118 &mut self, iDirectedTarget: ::UINT, pbstrSourcePath: *mut ::BSTR,
119 pbstrSourceFileName: *mut ::BSTR, pbstrSourceRangeList: *mut ::BSTR,
120 pbstrDestinationPath: *mut ::BSTR, pbstrDestinationFilename: *mut ::BSTR,
121 pbstrDestinationRangeList: *mut ::BSTR
122 ) -> ::HRESULT,
123 fn SetRestoreMetadata(&mut self, wszRestoreMetadata: ::LPCWSTR) -> ::HRESULT,
124 fn GetRestoreMetadata(&mut self, pbstrRestoreMetadata: *mut ::BSTR) -> ::HRESULT,
125 fn SetRestoreTarget(&mut self, target: ::VSS_RESTORE_TARGET) -> ::HRESULT,
126 fn GetRestoreTarget(&mut self, pTarget: *mut ::VSS_RESTORE_TARGET) -> ::HRESULT,
127 fn SetPreRestoreFailureMsg(&mut self, wszPreRestoreFailureMsg: ::LPCWSTR) -> ::HRESULT,
128 fn GetPreRestoreFailureMsg(&mut self, pbstrPreRestoreFailureMsg: *mut ::BSTR) -> ::HRESULT,
129 fn SetPostRestoreFailureMsg(&mut self, wszPostRestoreFailureMsg: ::LPCWSTR) -> ::HRESULT,
130 fn GetPostRestoreFailureMsg(&mut self, pbstrPostRestoreFailureMsg: *mut ::BSTR) -> ::HRESULT,
131 fn SetBackupStamp(&mut self, wszBackupStamp: ::LPCWSTR) -> ::HRESULT,
132 fn GetBackupStamp(&mut self, pbstrBackupStamp: *mut ::BSTR) -> ::HRESULT,
133 fn GetPreviousBackupStamp(&mut self, pbstrBackupStamp: *mut ::BSTR) -> ::HRESULT,
134 fn GetBackupOptions(&mut self, pbstrBackupOptions: *mut ::BSTR) -> ::HRESULT,
135 fn GetRestoreOptions(&mut self, pbstrRestoreOptions: *mut ::BSTR) -> ::HRESULT,
136 fn GetRestoreSubcomponentCount(&mut self, pcRestoreSubcomponent: *mut ::UINT) -> ::HRESULT,
137 fn GetRestoreSubcomponent(
138 &mut self, iComponent: ::UINT, pbstrLogicalPath: *mut ::BSTR,
139 pbstrComponentName: *mut ::BSTR, pbRepair: *mut bool
140 ) -> ::HRESULT,
141 fn GetFileRestoreStatus(&mut self, pStatus: *mut VSS_FILE_RESTORE_STATUS) -> ::HRESULT,
142 fn AddDifferencedFilesByLastModifyTime(
143 &mut self, wszPath: ::LPCWSTR, wszFilespec: ::LPCWSTR, bRecursive: ::BOOL,
144 ftLastModifyTime: ::FILETIME
145 ) -> ::HRESULT,
146 fn AddDifferencedFilesByLastModifyLSN(
147 &mut self, wszPath: ::LPCWSTR, wszFilespec: ::LPCWSTR, bRecursive: ::BOOL,
148 bstrLsnString: ::BSTR
149 ) -> ::HRESULT,
150 fn GetDifferencedFilesCount(&mut self, pcDifferencedFiles: *mut ::UINT) -> ::HRESULT,
151 fn GetDifferencedFile(
152 &mut self, iDifferencedFile: ::UINT, pbstrPath: *mut ::BSTR, pbstrFilespec: *mut ::BSTR,
153 pbRecursive: *mut ::BOOL, pbstrLsnString: *mut ::BSTR, pftLastModifyTime: *mut ::FILETIME
154 ) -> ::HRESULT
155}
156);
157RIDL!(
158interface IVssWriterComponents(IVssWriterComponentsVtbl) {
159 fn GetComponentCount(&mut self, pcComponents: *mut ::UINT) -> ::HRESULT,
160 fn GetWriterInfo(
161 &mut self, pidInstance: *mut ::VSS_ID, pidWriter: *mut ::VSS_ID
162 ) -> ::HRESULT,
163 fn GetComponent(
164 &mut self, iComponent: ::UINT, ppComponent: *mut *mut ::IVssComponent
165 ) -> ::HRESULT
166}
167);
168RIDL!(
169interface IVssComponentEx(IVssComponentExVtbl): IVssComponent(IVssComponentVtbl) {
170 fn SetPrepareForBackupFailureMsg(&mut self, wszFailureMsg: ::LPCWSTR) -> ::HRESULT,
171 fn SetPostSnapshotFailureMsg(&mut self, wszFailureMsg: ::LPCWSTR) -> ::HRESULT,
172 fn GetPrepareForBackupFailureMsg(&mut self, pbstrFailureMsg: *mut ::BSTR) -> ::HRESULT,
173 fn GetPostSnapshotFailureMsg(&mut self, pbstrFailureMsg: *mut ::BSTR) -> ::HRESULT,
174 fn GetAuthoritativeRestore(&mut self, pbAuth: *mut bool) -> ::HRESULT,
175 fn GetRollForward(
176 &mut self, pRollType: *mut ::VSS_ROLLFORWARD_TYPE, pbstrPoint: *mut ::BSTR
177 ) -> ::HRESULT,
178 fn GetRestoreName(&mut self, pbstrName: *mut ::BSTR) -> ::HRESULT
179}
180);
181RIDL!(
182interface IVssComponentEx2(IVssComponentEx2Vtbl): IVssComponentEx(IVssComponentExVtbl) {
183 fn SetFailure(
184 &mut self, hr: ::HRESULT, hrApplication: ::HRESULT, wszApplicationMessage: ::LPCWSTR,
185 dwReserved: ::DWORD
186 ) -> ::HRESULT,
187 fn GetFailure(
188 &mut self, phr: *mut ::HRESULT, phrApplication: *mut ::HRESULT,
189 pbstrApplicationMessage: *mut ::BSTR, pdwReserved: *mut ::DWORD
190 ) -> ::HRESULT
191}
192);
193RIDL!(
194interface IVssCreateWriterMetadata(IVssCreateWriterMetadataVtbl) {
195 fn AddIncludeFiles(
196 &mut self, wszPath: ::LPCWSTR, wszFilespec: ::LPCWSTR, bRecursive: bool,
197 wszAlternateLocation: ::LPCWSTR
198 ) -> ::HRESULT,
199 fn AddExcludeFiles(
200 &mut self, wszPath: ::LPCWSTR, wszFilespec: ::LPCWSTR, bRecursive: bool
201 ) -> ::HRESULT,
202 fn AddComponent(
203 &mut self, ct: ::VSS_COMPONENT_TYPE, wszLogicalPath: ::LPCWSTR,
204 wszComponentName: ::LPCWSTR, wszCaption: ::LPCWSTR, pbIcon: *const ::BYTE, cbIcon: ::UINT,
205 bRestoreMetadata: bool, bNotifyOnBackupComplete: bool, bSelectableForRestore: bool,
206 dwComponentFlags: ::DWORD
207 ) -> ::HRESULT,
208 fn AddDatabaseFiles(
209 &mut self, wszLogicalPath: ::LPCWSTR, wszDatabaseName: ::LPCWSTR, wszPath: ::LPCWSTR,
210 wszFilespec: ::LPCWSTR, dwBackupTypeMask: ::DWORD
211 ) -> ::HRESULT,
212 fn AddDatabaseLogFiles(&mut self, wszLogicalPath: ::LPCWSTR, wszDatabaseName: ::LPCWSTR,
213 wszPath: ::LPCWSTR, wszFilespec: ::LPCWSTR, dwBackupTypeMask: ::DWORD
214 ) -> ::HRESULT,
215 fn AddFilesToFileGroup(&mut self, wszLogicalPath: ::LPCWSTR, wszGroupName: ::LPCWSTR,
216 wszPath: ::LPCWSTR, wszFilespec: ::LPCWSTR, bRecursive: bool,
217 wszAlternateLocation: ::LPCWSTR, dwBackupTypeMask: ::DWORD
218 ) -> ::HRESULT,
219 fn SetRestoreMethod(&mut self, method: ::VSS_RESTOREMETHOD_ENUM, wszService: ::LPCWSTR,
220 wszUserProcedure: ::LPCWSTR, writerRestore: ::VSS_WRITERRESTORE_ENUM,
221 bRebootRequired: bool
222 ) -> ::HRESULT,
223 fn AddAlternateLocationMapping(&mut self, wszSourcePath: ::LPCWSTR,
224 wszSourceFilespec: ::LPCWSTR, bRecursive: bool, wszDestination: ::LPCWSTR
225 ) -> ::HRESULT,
226 fn AddComponentDependency(&mut self, wszForLogicalPath: ::LPCWSTR,
227 wszForComponentName: ::LPCWSTR, onWriterId: ::VSS_ID, wszOnLogicalPath: ::LPCWSTR,
228 wszOnComponentName: ::LPCWSTR
229 ) -> ::HRESULT,
230 fn SetBackupSchema(&mut self, dwSchemaMask: ::DWORD) -> ::HRESULT,
231 fn GetDocument(&mut self, pDoc: *mut *mut ::VOID) -> ::HRESULT, //TODO IXMLDOMDocument
232 fn SaveAsXML(&mut self, pbstrXML: *mut ::BSTR) -> ::HRESULT
233}
234);
235//IVssCreateWriterMetadataEx
236//IVssWriterImpl
237//IVssCreateExpressWriterMetadata
238//IVssExpressWriter
239//CVssWriter
240//CVssWriterEx
241//CVssWriterEx2