Source code of Windows XP (NT5)
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.
|
|
#pragma once
#include <shimgdata.h>
// PRIORITIES
#define PRIORITY_NORMAL ITSAT_DEFAULT_PRIORITY
#define PRIORITY_M5 (PRIORITY_NORMAL - 5 * 0x1000)
#define PRIORITY_M4 (PRIORITY_NORMAL - 4 * 0x1000)
#define PRIORITY_M3 (PRIORITY_NORMAL - 3 * 0x1000)
#define PRIORITY_M2 (PRIORITY_NORMAL - 2 * 0x1000)
#define PRIORITY_M1 (PRIORITY_NORMAL - 1 * 0x1000)
#define PRIORITY_NORMAL ITSAT_DEFAULT_PRIORITY
#define PRIORITY_P1 (PRIORITY_NORMAL + 1 * 0x1000)
#define PRIORITY_P2 (PRIORITY_NORMAL + 2 * 0x1000)
#define PRIORITY_P3 (PRIORITY_NORMAL + 3 * 0x1000)
#define PRIORITY_P4 (PRIORITY_NORMAL + 4 * 0x1000)
#define PRIORITY_P5 (PRIORITY_NORMAL + 5 * 0x1000)
#define PRIORITY_EXTRACT_FAST PRIORITY_P1
#define PRIORITY_EXTRACT_NORMAL PRIORITY_NORMAL
#define PRIORITY_EXTRACT_SLOW PRIORITY_M1
class CGdiPlusThumb : public IExtractImage, public IPersistFile, public CComObjectRoot, public CComCoClass< CGdiPlusThumb, &CLSID_GdiThumbnailExtractor > { public: CGdiPlusThumb(); ~CGdiPlusThumb();
BEGIN_COM_MAP( CGdiPlusThumb ) COM_INTERFACE_ENTRY( IExtractImage ) COM_INTERFACE_ENTRY( IPersistFile ) END_COM_MAP( )
DECLARE_REGISTRY( CGdiPlusThumb, _T("Shell.ThumbnailExtract.GdiPlus.1"), _T("Shell.ThumbnailExtract.GdiPlus.1"), IDS_GDITHUMBEXTRACT_DESC, THREADFLAGS_APARTMENT);
DECLARE_NOT_AGGREGATABLE( CGdiPlusThumb );
// IExtractImage
STDMETHOD (GetLocation)(LPWSTR pszPathBuffer, DWORD cch, DWORD *pdwPriority, const SIZE *prgSize, DWORD dwRecClrDepth, DWORD *pdwFlags);
STDMETHOD (Extract)(HBITMAP *phBmpThumbnail);
// IPersistFile
STDMETHOD (GetClassID)(CLSID *pClassID); STDMETHOD (IsDirty)(); STDMETHOD (Load)(LPCOLESTR pszFileName, DWORD dwMode); STDMETHOD (Save)(LPCOLESTR pszFileName, BOOL fRemember); STDMETHOD (SaveCompleted)(LPCOLESTR pszFileName); STDMETHOD (GetCurFile)(LPOLESTR *ppszFileName);
protected: HRESULT CreateDibFromBitmapImage(HBITMAP *pbm);
WCHAR m_szPath[MAX_PATH]; SIZE m_rgSize; DWORD m_dwRecClrDepth; BOOL m_fOrigSize; BOOL m_fFillBackground; BOOL m_fHighQuality;
IShellImageData * m_pImage; IShellImageDataFactory * m_pImageFactory; };
|