source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/msrdc.h@ 1167

Last change on this file since 1167 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 15.2 KB
Line 
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 _INC_MSRDC
7#define _INC_MSRDC
8
9#if (_WIN32_WINNT >= 0x0600)
10
11typedef UINT SimilarityFileIndexT;
12
13typedef enum _GeneratorParametersType {
14 RDCGENTYPE_Unused = 0,
15 RDCGENTYPE_FilterMax = 1
16} GeneratorParametersType;
17
18typedef enum _RdcCreatedTables {
19 RDCTABLE_InvalidOrUnknown = 0,
20 RDCTABLE_Existing = 1,
21 RDCTABLE_New = 2
22} RdcCreatedTables;
23
24typedef enum _RdcMappingAccessMode {
25 RDCMAPPING_Undefined = 0,
26 RDCMAPPING_ReadOnly = 1,
27 RDCMAPPING_ReadWrite = 2
28} RdcMappingAccessMode;
29
30typedef enum _RDC_ErrorCode {
31 RDC_NoError = 0,
32 RDC_HeaderVersionNewer = 1,
33 RDC_HeaderVersionOlder = 2,
34 RDC_HeaderMissingOrCorrupt = 3,
35 RDC_HeaderWrongType = 4,
36 RDC_DataMissingOrCorrupt = 5,
37 RDC_DataTooManyRecords = 6,
38 RDC_FileChecksumMismatch = 7,
39 RDC_ApplicationError = 8,
40 RDC_Aborted = 9,
41 RDC_Win32Error = 10
42} RDC_ErrorCode;
43
44typedef enum _RdcNeedType {
45 RDCNEED_SOURCE = 0,
46 RDCNEED_TARGET = 1,
47 RDCNEED_SEED = 2,
48 RDCNEED_SEED_MAX = 255
49} RdcNeedType;
50
51typedef struct _FindSimilarFileIndexResults {
52 SimilarityFileIndexT m_FileIndex;
53 unsigned m_MatchCount;
54} FindSimilarFileIndexResults;
55
56typedef struct _RdcBufferPointer {
57 ULONG m_Size;
58 ULONG m_Used;
59 BYTE *m_Data;
60} RdcBufferPointer;
61
62typedef struct _RdcNeed {
63 RdcNeedType m_BlockType;
64 unsigned __int64 m_FileOffset;
65 unsigned __int64 m_BlockLength;
66} RdcNeed;
67
68typedef struct _RdcNeedPointer {
69 ULONG m_Size;
70 ULONG m_Used;
71 RdcNeed *m_Data;
72} RdcNeedPointer;
73
74typedef struct _RdcSignature {
75 BYTE m_Signature[MSRDC_SIGNATURE_HASHSIZE];
76 USHORT m_BlockLength;
77} RdcSignature;
78
79typedef struct _RdcSignaturePointer {
80 ULONG m_Size;
81 ULONG m_Used;
82 RdcSignature *m_Data;
83} RdcSignaturePointer;
84
85typedef struct _SimilarityData {
86 unsigned char m_Data[16];
87} SimilarityData;
88
89typedef struct _SimilarityDumpData {
90 SimilarityFileIndexT m_FileIndex;
91 SimilarityData m_Data;
92} SimilarityDumpData;
93
94typedef struct _SimilarityFileId {
95 byte m_FileId[SimilarityFileIdMaxSize];
96} SimilarityFileId;
97
98struct SimilarityMappedViewInfo {
99 unsigned char *m_Data;
100 DWORD m_Length;
101};
102
103#undef INTERFACE
104#define INTERFACE IRdcFileWriter
105#ifdef __GNUC__
106#warning COM interfaces layout in this header has not been verified.
107#warning COM interfaces with incorrect layout may not work at all.
108__MINGW_BROKEN_INTERFACE(INTERFACE)
109#endif
110DECLARE_INTERFACE_(IRdcFileWriter,IUnknown)
111{
112 BEGIN_INTERFACE
113
114 /* IUnknown methods */
115 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
116 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
117 STDMETHOD_(ULONG, Release)(THIS) PURE;
118
119 /* IRdcFileWriter methods */
120 STDMETHOD_(HRESULT,Write)(THIS_ ULONGLONG offsetFileStart,ULONG bytesToWrite,BYTE *buffer) PURE;
121 STDMETHOD_(HRESULT,Truncate)(THIS) PURE;
122 STDMETHOD_(HRESULT,DeleteOnClose)(THIS) PURE;
123
124 END_INTERFACE
125};
126#ifdef COBJMACROS
127#define IRdcFileWriter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
128#define IRdcFileWriter_AddRef(This) (This)->lpVtbl->AddRef(This)
129#define IRdcFileWriter_Release(This) (This)->lpVtbl->Release(This)
130#define IRdcFileWriter_Write(This,offsetFileStart,bytesToWrite,buffer) (This)->lpVtbl->Write(This,offsetFileStart,bytesToWrite,buffer)
131#define IRdcFileWriter_Truncate() (This)->lpVtbl->Truncate(This)
132#define IRdcFileWriter_DeleteOnClose() (This)->lpVtbl->DeleteOnClose(This)
133#endif /*COBJMACROS*/
134
135#undef INTERFACE
136#define INTERFACE ISimilarityFileIdTable
137#ifdef __GNUC__
138#warning COM interfaces layout in this header has not been verified.
139#warning COM interfaces with incorrect layout may not work at all.
140__MINGW_BROKEN_INTERFACE(INTERFACE)
141#endif
142DECLARE_INTERFACE_(ISimilarityFileIdTable,IUnknown)
143{
144 BEGIN_INTERFACE
145
146 /* IUnknown methods */
147 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
148 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
149 STDMETHOD_(ULONG, Release)(THIS) PURE;
150
151 /* ISimilarityFileIdTable methods */
152 STDMETHOD_(HRESULT,CreateTable)(THIS_ wchar_t *path,WINBOOL truncate,BYTE *securityDescriptor,DWORD recordSize,RdcCreatedTables *isNew) PURE;
153 STDMETHOD_(HRESULT,CreateTableIndirect)(THIS_ IRdcFileWriter *fileIdFile,WINBOOL truncate,DWORD recordSize,RdcCreatedTables *isNew) PURE;
154 STDMETHOD_(HRESULT,CloseTable)(THIS_ WINBOOL isValid) PURE;
155 STDMETHOD_(HRESULT,Append)(THIS_ SimilarityFileId *similarityFileId,SimilarityFileIndexT *similarityFileIndex) PURE;
156 STDMETHOD_(HRESULT,Lookup)(THIS_ SimilarityFileIndexT similarityFileIndex,SimilarityFileId *similarityFileId) PURE;
157 STDMETHOD_(HRESULT,Invalidate)(THIS_ SimilarityFileIndexT similarityFileIndex) PURE;
158 STDMETHOD_(HRESULT,GetRecordCount)(THIS_ DWORD *recordCount) PURE;
159
160 END_INTERFACE
161};
162#ifdef COBJMACROS
163#define ISimilarityFileIdTable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
164#define ISimilarityFileIdTable_AddRef(This) (This)->lpVtbl->AddRef(This)
165#define ISimilarityFileIdTable_Release(This) (This)->lpVtbl->Release(This)
166#define ISimilarityFileIdTable_CreateTable(This,path,truncate,securityDescriptor,recordSize,isNew) (This)->lpVtbl->CreateTable(This,path,truncate,securityDescriptor,recordSize,isNew)
167#define ISimilarityFileIdTable_CreateTableIndirect(This,fileIdFile,truncate,recordSize,isNew) (This)->lpVtbl->CreateTableIndirect(This,fileIdFile,truncate,recordSize,isNew)
168#define ISimilarityFileIdTable_CloseTable(This,isValid) (This)->lpVtbl->CloseTable(This,isValid)
169#define ISimilarityFileIdTable_Append(This,similarityFileId,similarityFileIndex) (This)->lpVtbl->Append(This,similarityFileId,similarityFileIndex)
170#define ISimilarityFileIdTable_Lookup(This,similarityFileIndex,similarityFileId) (This)->lpVtbl->Lookup(This,similarityFileIndex,similarityFileId)
171#define ISimilarityFileIdTable_Invalidate(This,similarityFileIndex) (This)->lpVtbl->Invalidate(This,similarityFileIndex)
172#define ISimilarityFileIdTable_GetRecordCount(This,recordCount) (This)->lpVtbl->GetRecordCount(This,recordCount)
173#endif /*COBJMACROS*/
174
175#undef INTERFACE
176#define INTERFACE ISimilarityTraitsMappedView
177#ifdef __GNUC__
178#warning COM interfaces layout in this header has not been verified.
179#warning COM interfaces with incorrect layout may not work at all.
180__MINGW_BROKEN_INTERFACE(INTERFACE)
181#endif
182DECLARE_INTERFACE_(ISimilarityTraitsMappedView,IUnknown)
183{
184 BEGIN_INTERFACE
185
186 /* IUnknown methods */
187 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
188 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
189 STDMETHOD_(ULONG, Release)(THIS) PURE;
190
191 /* ISimilarityTraitsMappedView methods */
192 STDMETHOD_(HRESULT,Flush)(THIS) PURE;
193 STDMETHOD_(HRESULT,Unmap)(THIS) PURE;
194 STDMETHOD_(HRESULT,Get)(THIS_ unsigned __int64 fileOffset,WINBOOL dirty,DWORD numElements,SimilarityMappedViewInfo *viewInfo) PURE;
195 STDMETHOD(GetView)(THIS_ unsigned char const **mappedPageBegin,unsigned char const **mappedPageEnd) PURE;
196
197 END_INTERFACE
198};
199#ifdef COBJMACROS
200#define ISimilarityTraitsMappedView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
201#define ISimilarityTraitsMappedView_AddRef(This) (This)->lpVtbl->AddRef(This)
202#define ISimilarityTraitsMappedView_Release(This) (This)->lpVtbl->Release(This)
203#define ISimilarityTraitsMappedView_Flush() (This)->lpVtbl->Flush(This)
204#define ISimilarityTraitsMappedView_Unmap() (This)->lpVtbl->Unmap(This)
205#define ISimilarityTraitsMappedView_Get(This,fileOffset,dirty,numElements,viewInfo) (This)->lpVtbl->Get(This,fileOffset,dirty,numElements,viewInfo)
206#define ISimilarityTraitsMappedView_GetView(This,mappedPageBegin,mappedPageEnd) (This)->lpVtbl->GetView(This,mappedPageBegin,mappedPageEnd)
207#endif /*COBJMACROS*/
208
209#undef INTERFACE
210#define INTERFACE IFindSimilarResults
211#ifdef __GNUC__
212#warning COM interfaces layout in this header has not been verified.
213#warning COM interfaces with incorrect layout may not work at all.
214__MINGW_BROKEN_INTERFACE(INTERFACE)
215#endif
216DECLARE_INTERFACE_(IFindSimilarResults,IUnknown)
217{
218 BEGIN_INTERFACE
219
220 /* IUnknown methods */
221 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
222 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
223 STDMETHOD_(ULONG, Release)(THIS) PURE;
224
225 /* IFindSimilarResults methods */
226 STDMETHOD_(HRESULT,GetSize)(THIS_ DWORD *size) PURE;
227 STDMETHOD_(HRESULT,GetNextFileId)(THIS_ DWORD *numTraitsMatched,SimilarityFileId *similarityFileId) PURE;
228
229 END_INTERFACE
230};
231#ifdef COBJMACROS
232#define IFindSimilarResults_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
233#define IFindSimilarResults_AddRef(This) (This)->lpVtbl->AddRef(This)
234#define IFindSimilarResults_Release(This) (This)->lpVtbl->Release(This)
235#define IFindSimilarResults_GetSize(This,size) (This)->lpVtbl->GetSize(This,size)
236#define IFindSimilarResults_GetNextFileId(This,numTraitsMatched,similarityFileId) (This)->lpVtbl->GetNextFileId(This,numTraitsMatched,similarityFileId)
237#endif /*COBJMACROS*/
238
239#undef INTERFACE
240#define INTERFACE ISimilarityTraitsMapping
241#ifdef __GNUC__
242#warning COM interfaces layout in this header has not been verified.
243#warning COM interfaces with incorrect layout may not work at all.
244__MINGW_BROKEN_INTERFACE(INTERFACE)
245#endif
246DECLARE_INTERFACE_(ISimilarityTraitsMapping,IUnknown)
247{
248 BEGIN_INTERFACE
249
250 /* IUnknown methods */
251 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
252 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
253 STDMETHOD_(ULONG, Release)(THIS) PURE;
254
255 /* ISimilarityTraitsMapping methods */
256 STDMETHOD(CloseMapping)(THIS) PURE;
257 STDMETHOD_(HRESULT,SetFileSize)(THIS_ unsigned __int64 *fileSize) PURE;
258 STDMETHOD_(HRESULT,GetFileSize)(THIS_ unsigned __int64 *fileSize) PURE;
259 STDMETHOD_(HRESULT,OpenMapping)(THIS_ RdcMappingAccessMode accessMode,unsigned __int64 begin,unsigned __int64 end,unsigned __int64 *actualEnd) PURE;
260 STDMETHOD_(HRESULT,ResizeMapping)(THIS_ RdcMappingAccessMode accessMode,unsigned __int64 begin,unsigned __int64 end,unsigned __int64 *actualEnd) PURE;
261 STDMETHOD(GetPageSize)(THIS_ DWORD *pageSize) PURE;
262 STDMETHOD_(HRESULT,CreateView)(THIS_ DWORD minimumMappedPages,RdcMappingAccessMode accessMode,ISimilarityTraitsMappedView **mappedView) PURE;
263
264 END_INTERFACE
265};
266#ifdef COBJMACROS
267#define ISimilarityTraitsMapping_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
268#define ISimilarityTraitsMapping_AddRef(This) (This)->lpVtbl->AddRef(This)
269#define ISimilarityTraitsMapping_Release(This) (This)->lpVtbl->Release(This)
270#define ISimilarityTraitsMapping_CloseMapping() (This)->lpVtbl->CloseMapping(This)
271#define ISimilarityTraitsMapping_SetFileSize(This,fileSize) (This)->lpVtbl->SetFileSize(This,fileSize)
272#define ISimilarityTraitsMapping_GetFileSize(This,fileSize) (This)->lpVtbl->GetFileSize(This,fileSize)
273#define ISimilarityTraitsMapping_OpenMapping(This,accessMode,begin,end,actualEnd) (This)->lpVtbl->OpenMapping(This,accessMode,begin,end,actualEnd)
274#define ISimilarityTraitsMapping_ResizeMapping(This,accessMode,begin,end,actualEnd) (This)->lpVtbl->ResizeMapping(This,accessMode,begin,end,actualEnd)
275#define ISimilarityTraitsMapping_GetPageSize(This,pageSize) (This)->lpVtbl->GetPageSize(This,pageSize)
276#define ISimilarityTraitsMapping_CreateView(This,minimumMappedPages,accessMode,mappedView) (This)->lpVtbl->CreateView(This,minimumMappedPages,accessMode,mappedView)
277#endif /*COBJMACROS*/
278
279#undef INTERFACE
280#define INTERFACE ISimilarityReportProgress
281#ifdef __GNUC__
282#warning COM interfaces layout in this header has not been verified.
283#warning COM interfaces with incorrect layout may not work at all.
284__MINGW_BROKEN_INTERFACE(INTERFACE)
285#endif
286DECLARE_INTERFACE_(ISimilarityReportProgress,IUnknown)
287{
288 BEGIN_INTERFACE
289
290 /* IUnknown methods */
291 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
292 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
293 STDMETHOD_(ULONG, Release)(THIS) PURE;
294
295 /* ISimilarityReportProgress methods */
296 STDMETHOD_(HRESULT,ReportProgress)(THIS_ DWORD percentCompleted) PURE;
297
298 END_INTERFACE
299};
300#ifdef COBJMACROS
301#define ISimilarityReportProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
302#define ISimilarityReportProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
303#define ISimilarityReportProgress_Release(This) (This)->lpVtbl->Release(This)
304#define ISimilarityReportProgress_ReportProgress(This,percentCompleted) (This)->lpVtbl->ReportProgress(This,percentCompleted)
305#endif /*COBJMACROS*/
306
307#undef INTERFACE
308#define INTERFACE ISimilarity
309#ifdef __GNUC__
310#warning COM interfaces layout in this header has not been verified.
311#warning COM interfaces with incorrect layout may not work at all.
312__MINGW_BROKEN_INTERFACE(INTERFACE)
313#endif
314DECLARE_INTERFACE_(ISimilarity,IUnknown)
315{
316 BEGIN_INTERFACE
317
318 /* IUnknown methods */
319 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
320 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
321 STDMETHOD_(ULONG, Release)(THIS) PURE;
322
323 /* ISimilarity methods */
324 STDMETHOD_(HRESULT,CreateTable)(THIS_ wchar_t *path,WINBOOL truncate,BYTE *securityDescriptor,DWORD recordSize,RdcCreatedTables *isNew) PURE;
325 STDMETHOD_(HRESULT,CreateTableIndirect)(THIS_ ISimilarityTraitsMapping *mapping,IRdcFileWriter *fileIdFile,WINBOOL truncate,DWORD recordSize,RdcCreatedTables *isNew) PURE;
326 STDMETHOD_(HRESULT,CloseTable)(THIS_ WINBOOL isValid) PURE;
327 STDMETHOD_(HRESULT,Append)(THIS_ SimilarityFileId *similarityFileId,SimilarityData *similarityData) PURE;
328 STDMETHOD_(HRESULT,FindSimilarFileId)(THIS_ SimilarityData *similarityData,DWORD resultsSize,IFindSimilarResults **findSimilarResults) PURE;
329 STDMETHOD_(HRESULT,CopyAndSwap)(THIS_ ISimilarityReportProgress *reportProgress) PURE;
330 STDMETHOD_(HRESULT,GetRecordCount)(THIS_ DWORD *recordCount) PURE;
331
332 END_INTERFACE
333};
334#ifdef COBJMACROS
335#define ISimilarity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
336#define ISimilarity_AddRef(This) (This)->lpVtbl->AddRef(This)
337#define ISimilarity_Release(This) (This)->lpVtbl->Release(This)
338#define ISimilarity_CreateTable(This,path,truncate,securityDescriptor,recordSize,isNew) (This)->lpVtbl->CreateTable(This,path,truncate,securityDescriptor,recordSize,isNew)
339#define ISimilarity_CreateTableIndirect(This,mapping,fileIdFile,truncate,recordSize,isNew) (This)->lpVtbl->CreateTableIndirect(This,mapping,fileIdFile,truncate,recordSize,isNew)
340#define ISimilarity_CloseTable(This,isValid) (This)->lpVtbl->CloseTable(This,isValid)
341#define ISimilarity_Append(This,similarityFileId,similarityData) (This)->lpVtbl->Append(This,similarityFileId,similarityData)
342#define ISimilarity_FindSimilarFileId(This,similarityData,resultsSize,findSimilarResults) (This)->lpVtbl->FindSimilarFileId(This,similarityData,resultsSize,findSimilarResults)
343#define ISimilarity_CopyAndSwap(This,reportProgress) (This)->lpVtbl->CopyAndSwap(This,reportProgress)
344#define ISimilarity_GetRecordCount(This,recordCount) (This)->lpVtbl->GetRecordCount(This,recordCount)
345#endif /*COBJMACROS*/
346
347#endif /*(_WIN32_WINNT >= 0x0600)*/
348
349#endif /* _INC_MSRDC */
350
Note: See TracBrowser for help on using the repository browser.