windows-nt/Source/XPSP1/NT/shell/osshell/themes/inc/thmbobj.h
2020-09-26 16:20:57 +08:00

69 lines
2.1 KiB
C

//===========================================================================
//
// Copyright (c) Microsoft Corporation 1991-1998
//
// File: shlobj.h
//
//===========================================================================
//;begin_both
#ifndef RC_INVOKED
#pragma pack(1) /* Assume byte packing throughout */
#endif /* !RC_INVOKED */
#ifdef __cplusplus
extern "C" { /* Assume C declarations for C++ */
#endif /* __cplusplus */
//;end_both
// --- IExtractImage
//-------------------------------------------------------------------------
//
// IThumbnail interface
//
//
// [Member functions]
//
// IThumbnail::Init(HWND hwnd, UINT uMsg)
// Must initialize interface before use. The hwnd given will receive the
// uMsg message when the bitmap is computed (cf. GetBitmap()).
//
// IThumbnail::GetBitmap(LPCWSTR pwszFile, DWORD dwItem, LONG lWidth, LONG lHeight)
// Call this function to actually compute and return the bitmap. pszFile is
// the file UNC whose bitmap is to be computed. lWidth and lHeight are the
// width and height respectively of the rectangle containing the thumbnail,
// i.e. the size of the resultant bitmap. When the bitmap is computed, the
// uMsg is sent to the hwnd (cf. Init()) where LPARAM is the HBITMAP, and
// WPARAM is dwItem (so it's an ID to identify the bitmap).
// NOTE: Call GetBitmap(NULL,...) to cancel any pending requests.
//
//-------------------------------------------------------------------------
#undef INTERFACE
#define INTERFACE IThumbnail
DECLARE_INTERFACE_(IThumbnail, IUnknown)
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID *ppvObj) PURE;
STDMETHOD_(ULONG, AddRef) (THIS) PURE;
STDMETHOD_(ULONG, Release) (THIS) PURE;
// *** IThumbnail specific methods ***
STDMETHOD(Init) (THIS_ HWND hwnd, UINT uMsg) PURE;
STDMETHOD(GetBitmap) (THIS_ LPCWSTR wszFile, DWORD dwItem, LONG lWidth, LONG lHeight) PURE;
};
//;begin_both
#ifdef __cplusplus
}
#endif /* __cplusplus */
#ifndef RC_INVOKED
#pragma pack()
#endif /* !RC_INVOKED */
//;end_both