You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.4 KiB
67 lines
1.4 KiB
class CMIMEBitMatcher
|
|
{
|
|
public:
|
|
CMIMEBitMatcher(); // Default constructor
|
|
~CMIMEBitMatcher(); // Destructor
|
|
|
|
HRESULT InitFromBinary( const BYTE* pData, ULONG nBytes,
|
|
ULONG* pnBytesToMatch );
|
|
HRESULT Match( const BYTE* pBytes, ULONG nBytes ) const;
|
|
|
|
protected:
|
|
char m_achSignature[4];
|
|
|
|
public:
|
|
CMIMEBitMatcher* m_pNext;
|
|
|
|
protected:
|
|
ULONG m_nOffset;
|
|
ULONG m_nBytes;
|
|
BYTE* m_pMask;
|
|
BYTE* m_pData;
|
|
};
|
|
|
|
class CMIMEType
|
|
{
|
|
public:
|
|
CMIMEType(); // Default constructor
|
|
~CMIMEType(); // Destructor
|
|
|
|
UINT GetClipboardFormat() const;
|
|
HRESULT InitFromKey( HKEY hKey, LPCTSTR pszName, ULONG* pnMaxBytes );
|
|
HRESULT Match( const BYTE* pBytes, ULONG nBytes ) const;
|
|
|
|
protected:
|
|
char m_achSignature[4];
|
|
|
|
public:
|
|
CMIMEType* m_pNext;
|
|
|
|
protected:
|
|
UINT m_nClipboardFormat;
|
|
CMIMEBitMatcher* m_lpBitMatchers;
|
|
ULONG m_nMaxBytes;
|
|
};
|
|
|
|
class CMIMEIdentifier
|
|
{
|
|
public:
|
|
CMIMEIdentifier(); // Default constructor
|
|
~CMIMEIdentifier(); // Destructor
|
|
|
|
ULONG GetMaxBytes() const;
|
|
HRESULT Identify( const BYTE* pbBytes, ULONG nBytes, UINT* pnFormat );
|
|
HRESULT IdentifyStream( ISniffStream* pSniffStream,
|
|
UINT* pnClipboardFormat );
|
|
HRESULT InitFromRegistry();
|
|
|
|
protected:
|
|
char m_achSignature[4];
|
|
|
|
protected:
|
|
ULONG m_nMaxBytes;
|
|
CMIMEType* m_lpTypes;
|
|
};
|
|
|
|
void InitMIMEIdentifier();
|
|
void CleanupMIMEIdentifier();
|