PageRenderTime 50ms CodeModel.GetById 20ms RepoModel.GetById 1ms app.codeStats 0ms

/mingw-w64-headers/include/msrdc.h

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