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.

68 lines
2.1 KiB

  1. //===========================================================================
  2. //
  3. // Copyright (c) Microsoft Corporation 1991-1998
  4. //
  5. // File: shlobj.h
  6. //
  7. //===========================================================================
  8. //;begin_both
  9. #ifndef RC_INVOKED
  10. #pragma pack(1) /* Assume byte packing throughout */
  11. #endif /* !RC_INVOKED */
  12. #ifdef __cplusplus
  13. extern "C" { /* Assume C declarations for C++ */
  14. #endif /* __cplusplus */
  15. //;end_both
  16. // --- IExtractImage
  17. //-------------------------------------------------------------------------
  18. //
  19. // IThumbnail interface
  20. //
  21. //
  22. // [Member functions]
  23. //
  24. // IThumbnail::Init(HWND hwnd, UINT uMsg)
  25. // Must initialize interface before use. The hwnd given will receive the
  26. // uMsg message when the bitmap is computed (cf. GetBitmap()).
  27. //
  28. // IThumbnail::GetBitmap(LPCWSTR pwszFile, DWORD dwItem, LONG lWidth, LONG lHeight)
  29. // Call this function to actually compute and return the bitmap. pszFile is
  30. // the file UNC whose bitmap is to be computed. lWidth and lHeight are the
  31. // width and height respectively of the rectangle containing the thumbnail,
  32. // i.e. the size of the resultant bitmap. When the bitmap is computed, the
  33. // uMsg is sent to the hwnd (cf. Init()) where LPARAM is the HBITMAP, and
  34. // WPARAM is dwItem (so it's an ID to identify the bitmap).
  35. // NOTE: Call GetBitmap(NULL,...) to cancel any pending requests.
  36. //
  37. //-------------------------------------------------------------------------
  38. #undef INTERFACE
  39. #define INTERFACE IThumbnail
  40. DECLARE_INTERFACE_(IThumbnail, IUnknown)
  41. {
  42. // *** IUnknown methods ***
  43. STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID *ppvObj) PURE;
  44. STDMETHOD_(ULONG, AddRef) (THIS) PURE;
  45. STDMETHOD_(ULONG, Release) (THIS) PURE;
  46. // *** IThumbnail specific methods ***
  47. STDMETHOD(Init) (THIS_ HWND hwnd, UINT uMsg) PURE;
  48. STDMETHOD(GetBitmap) (THIS_ LPCWSTR wszFile, DWORD dwItem, LONG lWidth, LONG lHeight) PURE;
  49. };
  50. //;begin_both
  51. #ifdef __cplusplus
  52. }
  53. #endif /* __cplusplus */
  54. #ifndef RC_INVOKED
  55. #pragma pack()
  56. #endif /* !RC_INVOKED */
  57. //;end_both