// MSRDC.idl : IDL source for MSRDC // Updated 2/14/2005 10:25am // // This file will be processed by the MIDL tool to // produce the type library (MSRDC.tlb) and marshalling code. import "oaidl.idl"; import "ocidl.idl"; #ifdef MSRDCLIB // PRIVATE #include "guids.h" // PRIVATE #endif // PRIVATE #ifndef GUID_IID_IRdcGeneratorParameters #define GUID_IID_IRdcGeneratorParameters 96236A71-9DBC-11DA-9E3F-0011114AE311 #define GUID_IID_IRdcGeneratorFilterMaxParameters 96236A72-9DBC-11DA-9E3F-0011114AE311 #define GUID_IID_IRdcGenerator 96236A73-9DBC-11DA-9E3F-0011114AE311 #define GUID_IID_IRdcFileReader 96236A74-9DBC-11DA-9E3F-0011114AE311 #define GUID_IID_IRdcFileWriter 96236A75-9DBC-11DA-9E3F-0011114AE311 #define GUID_IID_IRdcSignatureReader 96236A76-9DBC-11DA-9E3F-0011114AE311 #define GUID_IID_IRdcComparator 96236A77-9DBC-11DA-9E3F-0011114AE311 #define GUID_IID_IRdcLibrary 96236A78-9DBC-11DA-9E3F-0011114AE311 #define GUID_IID_ISimilarityReportProgress 96236A7A-9DBC-11DA-9E3F-0011114AE311 #define GUID_IID_ISimilarityTableDumpState 96236A7B-9DBC-11DA-9E3F-0011114AE311 #define GUID_IID_ISimilarityTraitsMappedView 96236A7C-9DBC-11DA-9E3F-0011114AE311 #define GUID_IID_ISimilarityTraitsMapping 96236A7D-9DBC-11DA-9E3F-0011114AE311 #define GUID_IID_ISimilarityTraitsTable 96236A7E-9DBC-11DA-9E3F-0011114AE311 #define GUID_IID_ISimilarityFileIdTable 96236A7F-9DBC-11DA-9E3F-0011114AE311 #define GUID_IID_IRdcSimilarityGenerator 96236A80-9DBC-11DA-9E3F-0011114AE311 #define GUID_IID_IFindSimilarResults 96236A81-9DBC-11DA-9E3F-0011114AE311 #define GUID_IID_ISimilarity 96236A83-9DBC-11DA-9E3F-0011114AE311 #define GUID_LIBID_MSRDCLib 96236A84-9DBC-11DA-9E3F-0011114AE311 #define GUID_CLSID_RdcLibrary 96236A85-9DBC-11DA-9E3F-0011114AE311 #define GUID_CLSID_RdcGeneratorParameters 96236A86-9DBC-11DA-9E3F-0011114AE311 #define GUID_CLSID_RdcGeneratorFilterMaxParameters 96236A87-9DBC-11DA-9E3F-0011114AE311 #define GUID_CLSID_RdcGenerator 96236A88-9DBC-11DA-9E3F-0011114AE311 #define GUID_CLSID_RdcFileReader 96236A89-9DBC-11DA-9E3F-0011114AE311 #define GUID_CLSID_RdcSignatureReader 96236A8A-9DBC-11DA-9E3F-0011114AE311 #define GUID_CLSID_RdcComparator 96236A8B-9DBC-11DA-9E3F-0011114AE311 #define GUID_CLSID_SimilarityReportProgress 96236A8D-9DBC-11DA-9E3F-0011114AE311 #define GUID_CLSID_SimilarityTableDumpState 96236A8E-9DBC-11DA-9E3F-0011114AE311 #define GUID_CLSID_SimilarityTraitsTable 96236A8F-9DBC-11DA-9E3F-0011114AE311 #define GUID_CLSID_SimilarityFileIdTable 96236A90-9DBC-11DA-9E3F-0011114AE311 #define GUID_CLSID_Similarity 96236A91-9DBC-11DA-9E3F-0011114AE311 #define GUID_CLSID_RdcSimilarityGenerator 96236A92-9DBC-11DA-9E3F-0011114AE311 #define GUID_CLSID_FindSimilarResults 96236A93-9DBC-11DA-9E3F-0011114AE311 #define GUID_CLSID_SimilarityTraitsMapping 96236A94-9DBC-11DA-9E3F-0011114AE311 #define GUID_CLSID_SimilarityTraitsMappedView 96236A95-9DBC-11DA-9E3F-0011114AE311 #endif const unsigned RDCE_TABLE_FULL = 0x80040001; // FileID table only allows at most 2^32 entries const unsigned RDCE_TABLE_CORRUPT = 0x80040002; // similarity tables need to be deleted and rebuilt cpp_quote("#pragma warning( disable: 4100 )") /* unreferenced formal parameter */ cpp_quote("#pragma warning( disable: 4152 )") /* nonstandard extension, function/data pointer conversion in expression */ /* Define the version of this library */ cpp_quote("const ULONG MSRDC_VERSION = 0x010000;") /* Define the minimum version of an application compiled for RDC_SDK that will work with this version of the SDK. */ cpp_quote("const ULONG MSRDC_MINIMUM_COMPATIBLE_APP_VERSION = 0x010000;") cpp_quote("const ULONG MSRDC_MINIMUM_DEPTH = 1;") cpp_quote("const ULONG MSRDC_MAXIMUM_DEPTH = 8;") // Win32SignatureGeneration::MaxGenerationDepth cpp_quote("const ULONG MSRDC_MINIMUM_COMPAREBUFFER = 100000;") cpp_quote("const ULONG MSRDC_MAXIMUM_COMPAREBUFFER = (1<<30);") cpp_quote("const ULONG MSRDC_DEFAULT_COMPAREBUFFER = 3200000;") cpp_quote("const ULONG MSRDC_MINIMUM_INPUTBUFFERSIZE = 1024;") const ULONG MSRDC_SIGNATURE_HASHSIZE = 16; cpp_quote("const ULONG MSRDC_MINIMUM_HORIZONSIZE = 128;") cpp_quote("const ULONG MSRDC_MAXIMUM_HORIZONSIZE = 1024 * 16;") cpp_quote("const ULONG MSRDC_MINIMUM_HASHWINDOWSIZE = 2;") cpp_quote("const ULONG MSRDC_MAXIMUM_HASHWINDOWSIZE = 96;") cpp_quote("const ULONG MSRDC_DEFAULT_HASHWINDOWSIZE_1 = 48;") cpp_quote("const ULONG MSRDC_DEFAULT_HORIZONSIZE_1 = 1024;") cpp_quote("const ULONG MSRDC_DEFAULT_HASHWINDOWSIZE_N = 2;") cpp_quote("const ULONG MSRDC_DEFAULT_HORIZONSIZE_N = 128;") cpp_quote("const ULONG MSRDC_MAXIMUM_TRAITVALUE = 63;") cpp_quote("const ULONG MSRDC_MINIMUM_MATCHESREQUIRED = 1;") cpp_quote("const ULONG MSRDC_MAXIMUM_MATCHESREQUIRED = 16;") typedef enum { RDC_NoError, RDC_HeaderVersionNewer, // The filer header is incompatible with this library. RDC_HeaderVersionOlder, // The filer header is incompatible with this library. RDC_HeaderMissingOrCorrupt, RDC_HeaderWrongType, // The header format is incorrect (wrong type of input file?). RDC_DataMissingOrCorrupt, // EOF reached before all data expected was read. RDC_DataTooManyRecords, // Additional data found in stream past where EOF was expected. RDC_FileChecksumMismatch, // Final file checksum doesn't match. RDC_ApplicationError, // An application callback function returned failure. RDC_Aborted, RDC_Win32Error // A win32 error code } RDC_ErrorCode; typedef enum { RDCGENTYPE_Unused, RDCGENTYPE_FilterMax } GeneratorParametersType; typedef enum { RDCNEED_SOURCE = 0, RDCNEED_TARGET = 1, RDCNEED_SEED = 2, RDCNEED_SEED_MAX = 255 // Allows up to 253 seed files. } RdcNeedType; typedef struct { RdcNeedType m_BlockType; unsigned __int64 m_FileOffset; unsigned __int64 m_BlockLength; } RdcNeed; typedef struct { ULONG m_Size; ULONG m_Used; BYTE *m_Data; } RdcBufferPointer; typedef struct { ULONG m_Size; ULONG m_Used; RdcNeed *m_Data; } RdcNeedPointer; typedef struct { BYTE m_Signature[MSRDC_SIGNATURE_HASHSIZE]; USHORT m_BlockLength; } RdcSignature; typedef struct { ULONG m_Size; ULONG m_Used; RdcSignature *m_Data; } RdcSignaturePointer; typedef unsigned int SimilarityFileIndexT; typedef enum { RDCTABLE_InvalidOrUnknown, RDCTABLE_Existing, RDCTABLE_New } RdcCreatedTables; typedef enum { RDCMAPPING_Undefined, RDCMAPPING_ReadOnly, RDCMAPPING_ReadWrite } RdcMappingAccessMode; typedef struct { unsigned char *m_Data; DWORD m_Length; } SimilarityMappedViewInfo; typedef struct { unsigned char m_Data[16]; } SimilarityData; typedef struct { SimilarityFileIndexT m_FileIndex; unsigned m_MatchCount; } FindSimilarFileIndexResults; typedef struct { SimilarityFileIndexT m_FileIndex; SimilarityData m_Data; } SimilarityDumpData; const unsigned SimilarityFileIdMinSize = 4; const unsigned SimilarityFileIdMaxSize = 32; typedef struct { byte m_FileId[SimilarityFileIdMaxSize]; } SimilarityFileId; [ object, uuid(GUID_IID_IRdcGeneratorParameters), helpstring("IRdcGeneratorParameters Interface - abstract parameter interface for all types of RDC generator parameters"), pointer_default(unique) ] interface IRdcGeneratorParameters : IUnknown { [helpstring("method GetGeneratorParametersType - return the specific type of the parameters")] HRESULT GetGeneratorParametersType( [out] GeneratorParametersType * parametersType); [helpstring("method GetParametersVersion - return the RDC version that created these parameters")] HRESULT GetParametersVersion( [out] ULONG * currentVersion, [out] ULONG * minimumCompatibleAppVersion); [helpstring("method GetSerializeSize - return the number of bytes required to serialize the parameters")] HRESULT GetSerializeSize( [out] ULONG * size); [helpstring("method Serialize - serialize the parameters into the application supplied buffer")] HRESULT Serialize( [in] ULONG size, [out] BYTE * parametersBlob, [out] ULONG * bytesWritten); }; [ object, local, uuid(GUID_IID_IRdcGeneratorFilterMaxParameters), helpstring("IRdcGeneratorFilterMaxParameters Interface - specific parameter interface for FilterMax parameters"), pointer_default(unique) ] interface IRdcGeneratorFilterMaxParameters : IUnknown { [helpstring("method GetHorizonSize")] HRESULT GetHorizonSize( [out] ULONG * horizonSize); [helpstring("method SetHorizonSize")] HRESULT SetHorizonSize( [in] ULONG horizonSize); [helpstring("method GetHashWindowSize")] HRESULT GetHashWindowSize( [out] ULONG * hashWindowSize); [helpstring("method SetHashWindowSize")] HRESULT SetHashWindowSize( [in] ULONG hashWindowSize); }; [ object, local, uuid(GUID_IID_IRdcGenerator), helpstring("IRdcGenerator Interface - abstract interface for all types of RDC signature generators"), pointer_default(unique) ] interface IRdcGenerator : IUnknown { [helpstring("method GetGeneratorParameters - returns a copy of the parameters used to create this generator")] HRESULT GetGeneratorParameters( [in] ULONG level, [out] IRdcGeneratorParameters ** iGeneratorParameters); [helpstring("method Process - consumes all input and produces 0 or more signatures. Call this function until eofOfOutput gets set")] HRESULT Process( [in] BOOL endOfInput, [out] BOOL * endOfOutput, [in, out] RdcBufferPointer * inputBuffer, [in] ULONG depth, [out, size_is(depth)] RdcBufferPointer * outputBuffers[], [out] RDC_ErrorCode *rdc_ErrorCode); }; [ object, local, uuid(GUID_IID_IRdcFileReader), helpstring("IRdcFileReader Interface - abstract interface to read a file"), pointer_default(unique) ] interface IRdcFileReader : IUnknown { [helpstring("method GetFileSize - returns the size of the file")] HRESULT GetFileSize( [out] ULONGLONG * fileSize); [helpstring("method Read - read bytes from the file starting at the given offset - will read all requested bytes unless error or EOF")] HRESULT Read( [in] ULONGLONG offsetFileStart, [in] ULONG bytesToRead, [out] ULONG * bytesActuallyRead, [out] BYTE * buffer, [out] BOOL * eof); [helpstring("method GetFilePosition - returns the current file position")] HRESULT GetFilePosition( [out] ULONGLONG * offsetFromStart); }; [ object, local, uuid(GUID_IID_IRdcFileWriter), helpstring("IRdcFileWriter Interface - abstract interface to read/write a file"), pointer_default(unique) ] interface IRdcFileWriter : IRdcFileReader { [helpstring("method Write - Write bytes to the file starting at the given offset")] HRESULT Write( [in] ULONGLONG offsetFileStart, [in] ULONG bytesToWrite, [out] BYTE * buffer); [helpstring("method Truncate - truncate a file to zero length")] HRESULT Truncate(); [helpstring("method DeleteOnClose - sets the file to be deleted (or truncated) on close")] HRESULT DeleteOnClose(); }; [ object, local, uuid(GUID_IID_IRdcSignatureReader), helpstring("IRdcSignatureReader Interface - abstract interface to decode a signature file"), pointer_default(unique) ] interface IRdcSignatureReader : IUnknown { [helpstring("method ReadHeader - reads the signature file header and returns a copy of the parameters used to generate the signatures")] HRESULT ReadHeader( [out] RDC_ErrorCode *rdc_ErrorCode); [helpstring("method ReadSignature - read a signature from the current position")] HRESULT ReadSignatures( [in, out] RdcSignaturePointer *rdcSignaturePointer, [out] BOOL * endOfOutput ); }; [ object, local, uuid(GUID_IID_IRdcComparator), helpstring("IRdcComparator Interface - abstract interface for signature compators"), pointer_default(unique) ] interface IRdcComparator : IUnknown { [helpstring("method Process")] HRESULT Process( [in] BOOL endOfInput, [out] BOOL * endOfOutput, [in, out] RdcBufferPointer * inputBuffer, [in,out] RdcNeedPointer * outputBuffer, [out] RDC_ErrorCode *rdc_ErrorCode); }; [ object, local, uuid(GUID_IID_IRdcLibrary), helpstring("IRdcLibrary Interface"), pointer_default(unique) ] interface IRdcLibrary : IUnknown { [helpstring("method ComputeDefaultRecursionDepth - chooses a good default recursion depth for the given file size")] HRESULT ComputeDefaultRecursionDepth( [in] ULONGLONG fileSize, [out] ULONG* depth); [helpstring("method CreateGeneratorParameters - create default parameter values for the given recursion depth and generator type")] HRESULT CreateGeneratorParameters( [in] GeneratorParametersType parametersType, [in] ULONG level, [out] IRdcGeneratorParameters ** iGeneratorParameters); [helpstring("method OpenGeneratorParameters - deserialize a stored parameters blob")] HRESULT OpenGeneratorParameters( [in] ULONG size, [in] BYTE const * parametersBlob, [out] IRdcGeneratorParameters ** iGeneratorParameters); [helpstring("method CreateGenerator - given an array of parameters, create a (recursive) signature generator")] HRESULT CreateGenerator( [in] ULONG depth, [in, size_is(depth)] IRdcGeneratorParameters * iGeneratorParametersArray[], [out] IRdcGenerator ** iGenerator); [helpstring("method CreateComparator - create a signature comparator")] HRESULT CreateComparator( [in] IRdcFileReader * iSeedSignaturesFile, [in] ULONG comparatorBufferSize, [out] IRdcComparator ** iComparator); [helpstring("method CreateSignatureReader - create a signature file reader to decode a signature file")] HRESULT CreateSignatureReader( [in] IRdcFileReader * iFileReader, [out] IRdcSignatureReader ** iSignatureReader); [helpstring("method GetRDCVersion - get the current version of the library, and the oldest version to which it is backwards compatible with")] HRESULT GetRDCVersion( [out] ULONG * currentVersion, [out] ULONG * minimumCompatibleAppVersion); }; [ object, local, uuid(GUID_IID_ISimilarityReportProgress), helpstring("ISimilarityReportProgress Interface"), pointer_default(unique) ] interface ISimilarityReportProgress : IUnknown { [, helpstring("method ReportProgress")] HRESULT ReportProgress( [in] DWORD percentCompleted); }; [ object, local, uuid(GUID_IID_ISimilarityTableDumpState), helpstring("ISimilarityTableDumpState Interface"), pointer_default(unique) ] interface ISimilarityTableDumpState : IUnknown { [, helpstring("method GetNextData")] HRESULT GetNextData( [in] DWORD resultsSize, [out] DWORD * resultsUsed, [out] BOOL * eof, [in,out] SimilarityDumpData * results); }; [ object, local, uuid(GUID_IID_ISimilarityTraitsMappedView), helpstring("ISimilarityTraitsMappedView Interface"), pointer_default(unique) ] interface ISimilarityTraitsMappedView : IUnknown{ [, helpstring("method Flush"), local] HRESULT Flush(); [, helpstring("method Unmap"), local] HRESULT Unmap(); [, helpstring("method Get"), local] HRESULT Get( [in] unsigned __int64 index, [in] BOOL dirty, [in] DWORD numElements, [out] SimilarityMappedViewInfo * viewInfo); [, helpstring("method GetView"), local] void GetView( [out] unsigned char const **mappedPageBegin, [out] unsigned char const **mappedPageEnd); }; [ object, local, uuid(GUID_IID_ISimilarityTraitsMapping), helpstring("ISimilarityTraitsMapping Interface"), pointer_default(unique) ] interface ISimilarityTraitsMapping : IUnknown{ [, helpstring("method CloseMapping"), local] void CloseMapping(); [, helpstring("method SetFileSize")] HRESULT SetFileSize( [in] unsigned __int64 fileSize); [, helpstring("method GetFileSize"), local] HRESULT GetFileSize( [out] unsigned __int64 * fileSize); [, helpstring("method OpenMapping"), local] HRESULT OpenMapping( [in] RdcMappingAccessMode accessMode, [in] unsigned __int64 begin, [in] unsigned __int64 end , [out] unsigned __int64 * actualEnd); [, helpstring("method ResizeMapping"), local] HRESULT ResizeMapping( [in] RdcMappingAccessMode accessMode, [in] unsigned __int64 begin, [in] unsigned __int64 end, [out] unsigned __int64 * actualEnd); [, helpstring("method GetPageSize"), local] void GetPageSize( [out] DWORD * pageSize); [, helpstring("method CreateView")] HRESULT CreateView( [in] DWORD minimumMappedPages , [in] RdcMappingAccessMode accessMode, [out] ISimilarityTraitsMappedView ** mappedView); }; [ object, local, uuid(GUID_IID_ISimilarityTraitsTable), helpstring("ISimilarityTraitsTable Interface"), pointer_default(unique) ] interface ISimilarityTraitsTable : IUnknown { [, helpstring("method CreateTable")] HRESULT CreateTable( [in, annotation("__in")] wchar_t * path, [in] BOOL truncate, [in, annotation("__in")] BYTE * securityDescriptor, [out, annotation("__out")] RdcCreatedTables *isNew); [, helpstring("method CreateTable")] HRESULT CreateTableIndirect( [in] ISimilarityTraitsMapping *mapping, [in] BOOL truncate, [out] RdcCreatedTables *isNew); [, helpstring("method CloseTable")] HRESULT CloseTable(BOOL isValid); [, helpstring("method Append")] HRESULT Append( [in] SimilarityData * data, [in] SimilarityFileIndexT fileIndex); [, helpstring("method FindSimilarFileIndex")] HRESULT FindSimilarFileIndex( [in] SimilarityData * similarityData, [in] USHORT numberOfMatchesRequired, [out] FindSimilarFileIndexResults * findSimilarFileIndexResults, [in] DWORD resultsSize, [out] DWORD * resultsUsed); [, helpstring("method BeginDump")] HRESULT BeginDump( [out] ISimilarityTableDumpState ** similarityTableDumpState); [, helpstring("method GetLastIndex")] HRESULT GetLastIndex( [out] SimilarityFileIndexT *fileIndex); }; [ object, local, uuid(GUID_IID_ISimilarityFileIdTable), helpstring("ISimilarityFileIdTable Interface"), pointer_default(unique) ] interface ISimilarityFileIdTable : IUnknown { [, helpstring("method CreateTable")] HRESULT CreateTable( [in, annotation("__in")] wchar_t * path, [in] BOOL truncate, [in, annotation("__in")] BYTE * securityDescriptor, [in] DWORD recordSize, [out, annotation("__out")] RdcCreatedTables *isNew); [, helpstring("method CreateTable")] HRESULT CreateTableIndirect( [in] IRdcFileWriter *fileIdFile, [in] BOOL truncate, [in] DWORD recordSize, [out] RdcCreatedTables *isNew); [, helpstring("method CloseTable")] HRESULT CloseTable(BOOL isValid); [, helpstring("method Append")] HRESULT Append( [in] SimilarityFileId * similarityFileId, [out] SimilarityFileIndexT * similarityFileIndex); [, helpstring("method Lookup")] HRESULT Lookup( [in] SimilarityFileIndexT similarityFileIndex, [out] SimilarityFileId * similarityFileId); [, helpstring("method Invalidate")] HRESULT Invalidate( [in] SimilarityFileIndexT similarityFileIndex); [, helpstring("method GetRecordCount")] HRESULT GetRecordCount( [out] DWORD *recordCount); }; [ object, local, uuid(GUID_IID_IRdcSimilarityGenerator), helpstring("IRdcSimilarityGenerator Interface"), pointer_default(unique) ] interface IRdcSimilarityGenerator : IUnknown { [, helpstring("method EnableSimilarity")] HRESULT EnableSimilarity(void); [, helpstring("method Results")] HRESULT Results( [out] SimilarityData * similarityData); }; [ object, local, uuid(GUID_IID_IFindSimilarResults), helpstring("IFindSimilarResults Interface"), pointer_default(unique) ] interface IFindSimilarResults : IUnknown{ [, helpstring("method GetSize")] HRESULT GetSize( [out] DWORD * size); [, helpstring("method GetNextFileId")] HRESULT GetNextFileId( [out] DWORD * numTraitsMatched, [out] SimilarityFileId * similarityFileId); }; [ object, local, uuid(GUID_IID_ISimilarity), helpstring("ISimilarity Interface"), pointer_default(unique) ] interface ISimilarity : IUnknown { [, helpstring("method CreateTable")] HRESULT CreateTable( [in, annotation("__in")] wchar_t * path, [in] BOOL truncate, [in, annotation("__in")] BYTE * securityDescriptor, [in] DWORD recordSize, [out, annotation("__out")] RdcCreatedTables *isNew); [, helpstring("method CreateTable")] HRESULT CreateTableIndirect( [in] ISimilarityTraitsMapping *mapping, [in] IRdcFileWriter *fileIdFile, [in] BOOL truncate, [in] DWORD recordSize, [out] RdcCreatedTables *isNew); [, helpstring("method CloseTable")] HRESULT CloseTable( [in] BOOL isValid); [, helpstring("method Append")] HRESULT Append( [in] SimilarityFileId * similarityFileId, [in] SimilarityData * similarityData); [, helpstring("method FindSimilarFileId")] HRESULT FindSimilarFileId( [in] SimilarityData * similarityData, [in] USHORT numberOfMatchesRequired, [in] DWORD resultsSize, [out] IFindSimilarResults **findSimilarResults); [, helpstring("method Append")] HRESULT CopyAndSwap( [in] ISimilarity * newSimilarityTables, [in] ISimilarityReportProgress *reportProgress); [, helpstring("method GetRecordCount")] HRESULT GetRecordCount( [out] DWORD *recordCount); }; [ uuid(GUID_LIBID_MSRDCLib), version(1.0), helpstring("MSRDC 1.0 Type Library") ] library MSRDCLib { importlib("stdole2.tlb"); [ uuid(GUID_CLSID_RdcLibrary), helpstring("RdcLibrary Class") ] coclass RdcLibrary { [default] interface IRdcLibrary; }; [ uuid(GUID_CLSID_RdcGeneratorParameters), helpstring("RdcGeneratorParameters Class") ] coclass RdcGeneratorParameters { [default] interface IRdcGeneratorParameters; }; [ uuid(GUID_CLSID_RdcGeneratorFilterMaxParameters), helpstring("RdcGeneratorFilterMaxParameters Class") ] coclass RdcGeneratorFilterMaxParameters { [default] interface IRdcGeneratorFilterMaxParameters; }; [ uuid(GUID_CLSID_RdcGenerator), helpstring("RdcGenerator Class") ] coclass RdcGenerator { [default] interface IRdcGenerator; }; [ uuid(GUID_CLSID_RdcFileReader), helpstring("RdcFileReader Class") ] coclass RdcFileReader { [default] interface IRdcFileReader; interface IRdcFileWriter; }; [ uuid(GUID_CLSID_RdcSignatureReader), helpstring("RdcSignatureReader Class") ] coclass RdcSignatureReader { [default] interface IRdcSignatureReader; }; [ uuid(GUID_CLSID_RdcComparator), helpstring("RdcComparator Class") ] coclass RdcComparator { [default] interface IRdcComparator; }; [ uuid(GUID_CLSID_SimilarityReportProgress), helpstring("SimilarityReportProgress Class") ] coclass SimilarityReportProgress { [default] interface ISimilarityReportProgress; }; [ uuid(GUID_CLSID_SimilarityTableDumpState), helpstring("SimilarityTableDumpState Class") ] coclass SimilarityTableDumpState { [default] interface ISimilarityTableDumpState; }; [ uuid(GUID_CLSID_SimilarityTraitsTable), helpstring("SimilarityTraitsTable Class") ] coclass SimilarityTraitsTable { [default] interface ISimilarityTraitsTable; }; [ uuid(GUID_CLSID_SimilarityFileIdTable), helpstring("SimilarityFileIdTable Class") ] coclass SimilarityFileIdTable { [default] interface ISimilarityFileIdTable; }; [ uuid(GUID_CLSID_Similarity), helpstring("Similarity Class") ] coclass Similarity { [default] interface ISimilarity; }; [ uuid(GUID_CLSID_RdcSimilarityGenerator), helpstring("RdcSimilarityGenerator Class") ] coclass RdcSimilarityGenerator { [default] interface IRdcSimilarityGenerator; }; [ uuid(GUID_CLSID_FindSimilarResults), helpstring("FindSimilarResults Class") ] coclass FindSimilarResults { [default] interface IFindSimilarResults; }; [ uuid(GUID_CLSID_SimilarityTraitsMapping), helpstring("SimilarityTraitsMapping Class") ] coclass SimilarityTraitsMapping { [default] interface ISimilarityTraitsMapping; }; [ uuid(GUID_CLSID_SimilarityTraitsMappedView), helpstring("SimilarityTraitsMappedView Class") ] coclass SimilarityTraitsMappedView { [default] interface ISimilarityTraitsMappedView; }; };