123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350 |
- /**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
- #ifndef _INC_MSRDC
- #define _INC_MSRDC
- #if (_WIN32_WINNT >= 0x0600)
- typedef UINT SimilarityFileIndexT;
- typedef enum _GeneratorParametersType {
- RDCGENTYPE_Unused = 0,
- RDCGENTYPE_FilterMax = 1
- } GeneratorParametersType;
- typedef enum _RdcCreatedTables {
- RDCTABLE_InvalidOrUnknown = 0,
- RDCTABLE_Existing = 1,
- RDCTABLE_New = 2
- } RdcCreatedTables;
- typedef enum _RdcMappingAccessMode {
- RDCMAPPING_Undefined = 0,
- RDCMAPPING_ReadOnly = 1,
- RDCMAPPING_ReadWrite = 2
- } RdcMappingAccessMode;
- typedef enum _RDC_ErrorCode {
- RDC_NoError = 0,
- RDC_HeaderVersionNewer = 1,
- RDC_HeaderVersionOlder = 2,
- RDC_HeaderMissingOrCorrupt = 3,
- RDC_HeaderWrongType = 4,
- RDC_DataMissingOrCorrupt = 5,
- RDC_DataTooManyRecords = 6,
- RDC_FileChecksumMismatch = 7,
- RDC_ApplicationError = 8,
- RDC_Aborted = 9,
- RDC_Win32Error = 10
- } RDC_ErrorCode;
- typedef enum _RdcNeedType {
- RDCNEED_SOURCE = 0,
- RDCNEED_TARGET = 1,
- RDCNEED_SEED = 2,
- RDCNEED_SEED_MAX = 255
- } RdcNeedType;
- typedef struct _FindSimilarFileIndexResults {
- SimilarityFileIndexT m_FileIndex;
- unsigned m_MatchCount;
- } FindSimilarFileIndexResults;
- typedef struct _RdcBufferPointer {
- ULONG m_Size;
- ULONG m_Used;
- BYTE *m_Data;
- } RdcBufferPointer;
- typedef struct _RdcNeed {
- RdcNeedType m_BlockType;
- unsigned __int64 m_FileOffset;
- unsigned __int64 m_BlockLength;
- } RdcNeed;
- typedef struct _RdcNeedPointer {
- ULONG m_Size;
- ULONG m_Used;
- RdcNeed *m_Data;
- } RdcNeedPointer;
- typedef struct _RdcSignature {
- BYTE m_Signature[MSRDC_SIGNATURE_HASHSIZE];
- USHORT m_BlockLength;
- } RdcSignature;
- typedef struct _RdcSignaturePointer {
- ULONG m_Size;
- ULONG m_Used;
- RdcSignature *m_Data;
- } RdcSignaturePointer;
- typedef struct _SimilarityData {
- unsigned char m_Data[16];
- } SimilarityData;
- typedef struct _SimilarityDumpData {
- SimilarityFileIndexT m_FileIndex;
- SimilarityData m_Data;
- } SimilarityDumpData;
- typedef struct _SimilarityFileId {
- byte m_FileId[SimilarityFileIdMaxSize];
- } SimilarityFileId;
- struct SimilarityMappedViewInfo {
- unsigned char *m_Data;
- DWORD m_Length;
- };
- #undef INTERFACE
- #define INTERFACE IRdcFileWriter
- #ifdef __GNUC__
- #warning COM interfaces layout in this header has not been verified.
- #warning COM interfaces with incorrect layout may not work at all.
- __MINGW_BROKEN_INTERFACE(INTERFACE)
- #endif
- DECLARE_INTERFACE_(IRdcFileWriter,IUnknown)
- {
- BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
- /* IRdcFileWriter methods */
- STDMETHOD_(HRESULT,Write)(THIS_ ULONGLONG offsetFileStart,ULONG bytesToWrite,BYTE *buffer) PURE;
- STDMETHOD_(HRESULT,Truncate)(THIS) PURE;
- STDMETHOD_(HRESULT,DeleteOnClose)(THIS) PURE;
- END_INTERFACE
- };
- #ifdef COBJMACROS
- #define IRdcFileWriter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
- #define IRdcFileWriter_AddRef(This) (This)->lpVtbl->AddRef(This)
- #define IRdcFileWriter_Release(This) (This)->lpVtbl->Release(This)
- #define IRdcFileWriter_Write(This,offsetFileStart,bytesToWrite,buffer) (This)->lpVtbl->Write(This,offsetFileStart,bytesToWrite,buffer)
- #define IRdcFileWriter_Truncate() (This)->lpVtbl->Truncate(This)
- #define IRdcFileWriter_DeleteOnClose() (This)->lpVtbl->DeleteOnClose(This)
- #endif /*COBJMACROS*/
- #undef INTERFACE
- #define INTERFACE ISimilarityFileIdTable
- #ifdef __GNUC__
- #warning COM interfaces layout in this header has not been verified.
- #warning COM interfaces with incorrect layout may not work at all.
- __MINGW_BROKEN_INTERFACE(INTERFACE)
- #endif
- DECLARE_INTERFACE_(ISimilarityFileIdTable,IUnknown)
- {
- BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
- /* ISimilarityFileIdTable methods */
- STDMETHOD_(HRESULT,CreateTable)(THIS_ wchar_t *path,WINBOOL truncate,BYTE *securityDescriptor,DWORD recordSize,RdcCreatedTables *isNew) PURE;
- STDMETHOD_(HRESULT,CreateTableIndirect)(THIS_ IRdcFileWriter *fileIdFile,WINBOOL truncate,DWORD recordSize,RdcCreatedTables *isNew) PURE;
- STDMETHOD_(HRESULT,CloseTable)(THIS_ WINBOOL isValid) PURE;
- STDMETHOD_(HRESULT,Append)(THIS_ SimilarityFileId *similarityFileId,SimilarityFileIndexT *similarityFileIndex) PURE;
- STDMETHOD_(HRESULT,Lookup)(THIS_ SimilarityFileIndexT similarityFileIndex,SimilarityFileId *similarityFileId) PURE;
- STDMETHOD_(HRESULT,Invalidate)(THIS_ SimilarityFileIndexT similarityFileIndex) PURE;
- STDMETHOD_(HRESULT,GetRecordCount)(THIS_ DWORD *recordCount) PURE;
- END_INTERFACE
- };
- #ifdef COBJMACROS
- #define ISimilarityFileIdTable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
- #define ISimilarityFileIdTable_AddRef(This) (This)->lpVtbl->AddRef(This)
- #define ISimilarityFileIdTable_Release(This) (This)->lpVtbl->Release(This)
- #define ISimilarityFileIdTable_CreateTable(This,path,truncate,securityDescriptor,recordSize,isNew) (This)->lpVtbl->CreateTable(This,path,truncate,securityDescriptor,recordSize,isNew)
- #define ISimilarityFileIdTable_CreateTableIndirect(This,fileIdFile,truncate,recordSize,isNew) (This)->lpVtbl->CreateTableIndirect(This,fileIdFile,truncate,recordSize,isNew)
- #define ISimilarityFileIdTable_CloseTable(This,isValid) (This)->lpVtbl->CloseTable(This,isValid)
- #define ISimilarityFileIdTable_Append(This,similarityFileId,similarityFileIndex) (This)->lpVtbl->Append(This,similarityFileId,similarityFileIndex)
- #define ISimilarityFileIdTable_Lookup(This,similarityFileIndex,similarityFileId) (This)->lpVtbl->Lookup(This,similarityFileIndex,similarityFileId)
- #define ISimilarityFileIdTable_Invalidate(This,similarityFileIndex) (This)->lpVtbl->Invalidate(This,similarityFileIndex)
- #define ISimilarityFileIdTable_GetRecordCount(This,recordCount) (This)->lpVtbl->GetRecordCount(This,recordCount)
- #endif /*COBJMACROS*/
- #undef INTERFACE
- #define INTERFACE ISimilarityTraitsMappedView
- #ifdef __GNUC__
- #warning COM interfaces layout in this header has not been verified.
- #warning COM interfaces with incorrect layout may not work at all.
- __MINGW_BROKEN_INTERFACE(INTERFACE)
- #endif
- DECLARE_INTERFACE_(ISimilarityTraitsMappedView,IUnknown)
- {
- BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
- /* ISimilarityTraitsMappedView methods */
- STDMETHOD_(HRESULT,Flush)(THIS) PURE;
- STDMETHOD_(HRESULT,Unmap)(THIS) PURE;
- STDMETHOD_(HRESULT,Get)(THIS_ unsigned __int64 fileOffset,WINBOOL dirty,DWORD numElements,SimilarityMappedViewInfo *viewInfo) PURE;
- STDMETHOD(GetView)(THIS_ unsigned char const **mappedPageBegin,unsigned char const **mappedPageEnd) PURE;
- END_INTERFACE
- };
- #ifdef COBJMACROS
- #define ISimilarityTraitsMappedView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
- #define ISimilarityTraitsMappedView_AddRef(This) (This)->lpVtbl->AddRef(This)
- #define ISimilarityTraitsMappedView_Release(This) (This)->lpVtbl->Release(This)
- #define ISimilarityTraitsMappedView_Flush() (This)->lpVtbl->Flush(This)
- #define ISimilarityTraitsMappedView_Unmap() (This)->lpVtbl->Unmap(This)
- #define ISimilarityTraitsMappedView_Get(This,fileOffset,dirty,numElements,viewInfo) (This)->lpVtbl->Get(This,fileOffset,dirty,numElements,viewInfo)
- #define ISimilarityTraitsMappedView_GetView(This,mappedPageBegin,mappedPageEnd) (This)->lpVtbl->GetView(This,mappedPageBegin,mappedPageEnd)
- #endif /*COBJMACROS*/
- #undef INTERFACE
- #define INTERFACE IFindSimilarResults
- #ifdef __GNUC__
- #warning COM interfaces layout in this header has not been verified.
- #warning COM interfaces with incorrect layout may not work at all.
- __MINGW_BROKEN_INTERFACE(INTERFACE)
- #endif
- DECLARE_INTERFACE_(IFindSimilarResults,IUnknown)
- {
- BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
- /* IFindSimilarResults methods */
- STDMETHOD_(HRESULT,GetSize)(THIS_ DWORD *size) PURE;
- STDMETHOD_(HRESULT,GetNextFileId)(THIS_ DWORD *numTraitsMatched,SimilarityFileId *similarityFileId) PURE;
- END_INTERFACE
- };
- #ifdef COBJMACROS
- #define IFindSimilarResults_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
- #define IFindSimilarResults_AddRef(This) (This)->lpVtbl->AddRef(This)
- #define IFindSimilarResults_Release(This) (This)->lpVtbl->Release(This)
- #define IFindSimilarResults_GetSize(This,size) (This)->lpVtbl->GetSize(This,size)
- #define IFindSimilarResults_GetNextFileId(This,numTraitsMatched,similarityFileId) (This)->lpVtbl->GetNextFileId(This,numTraitsMatched,similarityFileId)
- #endif /*COBJMACROS*/
- #undef INTERFACE
- #define INTERFACE ISimilarityTraitsMapping
- #ifdef __GNUC__
- #warning COM interfaces layout in this header has not been verified.
- #warning COM interfaces with incorrect layout may not work at all.
- __MINGW_BROKEN_INTERFACE(INTERFACE)
- #endif
- DECLARE_INTERFACE_(ISimilarityTraitsMapping,IUnknown)
- {
- BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
- /* ISimilarityTraitsMapping methods */
- STDMETHOD(CloseMapping)(THIS) PURE;
- STDMETHOD_(HRESULT,SetFileSize)(THIS_ unsigned __int64 *fileSize) PURE;
- STDMETHOD_(HRESULT,GetFileSize)(THIS_ unsigned __int64 *fileSize) PURE;
- STDMETHOD_(HRESULT,OpenMapping)(THIS_ RdcMappingAccessMode accessMode,unsigned __int64 begin,unsigned __int64 end,unsigned __int64 *actualEnd) PURE;
- STDMETHOD_(HRESULT,ResizeMapping)(THIS_ RdcMappingAccessMode accessMode,unsigned __int64 begin,unsigned __int64 end,unsigned __int64 *actualEnd) PURE;
- STDMETHOD(GetPageSize)(THIS_ DWORD *pageSize) PURE;
- STDMETHOD_(HRESULT,CreateView)(THIS_ DWORD minimumMappedPages,RdcMappingAccessMode accessMode,ISimilarityTraitsMappedView **mappedView) PURE;
- END_INTERFACE
- };
- #ifdef COBJMACROS
- #define ISimilarityTraitsMapping_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
- #define ISimilarityTraitsMapping_AddRef(This) (This)->lpVtbl->AddRef(This)
- #define ISimilarityTraitsMapping_Release(This) (This)->lpVtbl->Release(This)
- #define ISimilarityTraitsMapping_CloseMapping() (This)->lpVtbl->CloseMapping(This)
- #define ISimilarityTraitsMapping_SetFileSize(This,fileSize) (This)->lpVtbl->SetFileSize(This,fileSize)
- #define ISimilarityTraitsMapping_GetFileSize(This,fileSize) (This)->lpVtbl->GetFileSize(This,fileSize)
- #define ISimilarityTraitsMapping_OpenMapping(This,accessMode,begin,end,actualEnd) (This)->lpVtbl->OpenMapping(This,accessMode,begin,end,actualEnd)
- #define ISimilarityTraitsMapping_ResizeMapping(This,accessMode,begin,end,actualEnd) (This)->lpVtbl->ResizeMapping(This,accessMode,begin,end,actualEnd)
- #define ISimilarityTraitsMapping_GetPageSize(This,pageSize) (This)->lpVtbl->GetPageSize(This,pageSize)
- #define ISimilarityTraitsMapping_CreateView(This,minimumMappedPages,accessMode,mappedView) (This)->lpVtbl->CreateView(This,minimumMappedPages,accessMode,mappedView)
- #endif /*COBJMACROS*/
- #undef INTERFACE
- #define INTERFACE ISimilarityReportProgress
- #ifdef __GNUC__
- #warning COM interfaces layout in this header has not been verified.
- #warning COM interfaces with incorrect layout may not work at all.
- __MINGW_BROKEN_INTERFACE(INTERFACE)
- #endif
- DECLARE_INTERFACE_(ISimilarityReportProgress,IUnknown)
- {
- BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
- /* ISimilarityReportProgress methods */
- STDMETHOD_(HRESULT,ReportProgress)(THIS_ DWORD percentCompleted) PURE;
- END_INTERFACE
- };
- #ifdef COBJMACROS
- #define ISimilarityReportProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
- #define ISimilarityReportProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
- #define ISimilarityReportProgress_Release(This) (This)->lpVtbl->Release(This)
- #define ISimilarityReportProgress_ReportProgress(This,percentCompleted) (This)->lpVtbl->ReportProgress(This,percentCompleted)
- #endif /*COBJMACROS*/
- #undef INTERFACE
- #define INTERFACE ISimilarity
- #ifdef __GNUC__
- #warning COM interfaces layout in this header has not been verified.
- #warning COM interfaces with incorrect layout may not work at all.
- __MINGW_BROKEN_INTERFACE(INTERFACE)
- #endif
- DECLARE_INTERFACE_(ISimilarity,IUnknown)
- {
- BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
- /* ISimilarity methods */
- STDMETHOD_(HRESULT,CreateTable)(THIS_ wchar_t *path,WINBOOL truncate,BYTE *securityDescriptor,DWORD recordSize,RdcCreatedTables *isNew) PURE;
- STDMETHOD_(HRESULT,CreateTableIndirect)(THIS_ ISimilarityTraitsMapping *mapping,IRdcFileWriter *fileIdFile,WINBOOL truncate,DWORD recordSize,RdcCreatedTables *isNew) PURE;
- STDMETHOD_(HRESULT,CloseTable)(THIS_ WINBOOL isValid) PURE;
- STDMETHOD_(HRESULT,Append)(THIS_ SimilarityFileId *similarityFileId,SimilarityData *similarityData) PURE;
- STDMETHOD_(HRESULT,FindSimilarFileId)(THIS_ SimilarityData *similarityData,DWORD resultsSize,IFindSimilarResults **findSimilarResults) PURE;
- STDMETHOD_(HRESULT,CopyAndSwap)(THIS_ ISimilarityReportProgress *reportProgress) PURE;
- STDMETHOD_(HRESULT,GetRecordCount)(THIS_ DWORD *recordCount) PURE;
- END_INTERFACE
- };
- #ifdef COBJMACROS
- #define ISimilarity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
- #define ISimilarity_AddRef(This) (This)->lpVtbl->AddRef(This)
- #define ISimilarity_Release(This) (This)->lpVtbl->Release(This)
- #define ISimilarity_CreateTable(This,path,truncate,securityDescriptor,recordSize,isNew) (This)->lpVtbl->CreateTable(This,path,truncate,securityDescriptor,recordSize,isNew)
- #define ISimilarity_CreateTableIndirect(This,mapping,fileIdFile,truncate,recordSize,isNew) (This)->lpVtbl->CreateTableIndirect(This,mapping,fileIdFile,truncate,recordSize,isNew)
- #define ISimilarity_CloseTable(This,isValid) (This)->lpVtbl->CloseTable(This,isValid)
- #define ISimilarity_Append(This,similarityFileId,similarityData) (This)->lpVtbl->Append(This,similarityFileId,similarityData)
- #define ISimilarity_FindSimilarFileId(This,similarityData,resultsSize,findSimilarResults) (This)->lpVtbl->FindSimilarFileId(This,similarityData,resultsSize,findSimilarResults)
- #define ISimilarity_CopyAndSwap(This,reportProgress) (This)->lpVtbl->CopyAndSwap(This,reportProgress)
- #define ISimilarity_GetRecordCount(This,recordCount) (This)->lpVtbl->GetRecordCount(This,recordCount)
- #endif /*COBJMACROS*/
- #endif /*(_WIN32_WINNT >= 0x0600)*/
- #endif /* _INC_MSRDC */
|