W2KFix.h
上传用户:yatsl7111
上传日期:2007-01-08
资源大小:1433k
文件大小:7k
源码类别:

图形图象

开发平台:

Visual C++

  1. #ifndef __W2KFIX_H__
  2. #define __W2KFIX_H__
  3. #if (_WIN32_IE < 0x0501)
  4. typedef struct _SHELLDETAILS
  5. {
  6.     int     fmt;            // LVCFMT_* value (header only)
  7.     int     cxChar;         // Number of "average" characters (header only)
  8.     STRRET  str;            // String information
  9. } SHELLDETAILS, *LPSHELLDETAILS;
  10. // {93F2F68C-1D1B-11d3-A30E-00C04F79ABD1}
  11. DEFINE_GUID(IID_IShellFolder2,  0x93f2f68c, 0x1d1b, 0x11d3, 0xa3, 0xe, 0x0, 0xc0, 0x4f, 0x79, 0xab, 0xd1);
  12. #define SHCDF_UPDATEITEM        0x00000001      // this flag is a hint that the file has changed since the last call to GetItemData
  13. typedef struct {
  14.     GUID fmtid;
  15.     DWORD pid;
  16. } SHCOLUMNID, *LPSHCOLUMNID;
  17. typedef const SHCOLUMNID* LPCSHCOLUMNID;
  18. typedef struct {
  19.     ULONG   dwFlags ;            // combination of SHCDF_ flags.
  20.     DWORD   dwFileAttributes ;   // file attributes.
  21.     ULONG   dwReserved ;         // reserved for future use.
  22.     WCHAR*  pwszExt ;            // address of file name extension
  23.     WCHAR   wszFile[MAX_PATH] ;  // Absolute path of file.
  24. } SHCOLUMNDATA, *LPSHCOLUMNDATA ;
  25. typedef const SHCOLUMNDATA* LPCSHCOLUMNDATA ;
  26. #define MAX_COLUMN_NAME_LEN 80
  27. #define MAX_COLUMN_DESC_LEN 128
  28. typedef struct {
  29.     ULONG   dwFlags ;             // initialization flags
  30.     ULONG   dwReserved ;          // reserved for future use.
  31.     WCHAR   wszFolder[MAX_PATH];  // fully qualified folder path (or empty if multiple folders)
  32. } SHCOLUMNINIT, *LPSHCOLUMNINIT;
  33. typedef const SHCOLUMNINIT* LPCSHCOLUMNINIT;
  34. typedef struct {
  35.     SHCOLUMNID  scid;                           // OUT the unique identifier of this column
  36.     VARTYPE     vt;                             // OUT the native type of the data returned
  37.     DWORD       fmt;                            // OUT this listview format (LVCFMT_LEFT, usually)
  38.     UINT        cChars;                         // OUT the default width of the column, in characters
  39.     DWORD       csFlags;                        // OUT SHCOLSTATE flags
  40.     WCHAR wszTitle[MAX_COLUMN_NAME_LEN];        // OUT the title of the column
  41.     WCHAR wszDescription[MAX_COLUMN_DESC_LEN];  // OUT full description of this column
  42. } SHCOLUMNINFO, *LPSHCOLUMNINFO ;
  43. typedef const SHCOLUMNINFO* LPCSHCOLUMNINFO ;
  44. //-------------------------------------------------------------------------
  45. //
  46. // IEnumExtraSearch interface
  47. //
  48. //  IShellFolder2::EnumSearches member returns an IEnumExtraSearch object.
  49. //
  50. //-------------------------------------------------------------------------
  51. typedef struct tagEXTRASEARCH
  52. {
  53.     GUID    guidSearch;
  54.     WCHAR   wszFriendlyName[80];
  55.     WCHAR   wszUrl[2084];
  56. }EXTRASEARCH, *LPEXTRASEARCH;
  57. typedef struct IEnumExtraSearch *LPENUMEXTRASEARCH;
  58. #undef  INTERFACE
  59. #define INTERFACE       IEnumExtraSearch
  60. DECLARE_INTERFACE_(IEnumExtraSearch, IUnknown)
  61. {
  62.     // *** IUnknown methods ***
  63.     STDMETHOD(QueryInterface) (THIS_ REFIID riid, void **ppv) PURE;
  64.     STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
  65.     STDMETHOD_(ULONG,Release) (THIS) PURE;
  66.     // *** IEnumExtraSearch methods ***
  67.     STDMETHOD(Next)  (THIS_ ULONG celt, EXTRASEARCH *rgelt, ULONG *pceltFetched) PURE;
  68.     STDMETHOD(Skip)  (THIS_ ULONG celt) PURE;
  69.     STDMETHOD(Reset) (THIS) PURE;
  70.     STDMETHOD(Clone) (THIS_ IEnumExtraSearch **ppenum) PURE;
  71. };
  72. //--------------------------------------------------------------------------
  73. // IShellFolder2
  74. //
  75. // [member functions]
  76. //
  77. // IShellFolder2::GetDefaultSearchGUID(LPGUID pGuid)
  78. //   Returns the guid of the search that is to be invoked when user clicks
  79. //   on the search toolbar button
  80. //
  81. // IShellFolder2::EnumSearches(IEnumExtraSearch **ppenum)
  82. //   gives an enumerator of the searches to be added to the search menu
  83. //--------------------------------------------------------------------------
  84. // IShellFolder2::GetDefaultColumnState values
  85. typedef enum {
  86.     SHCOLSTATE_TYPE_STR     = 0x00000001,
  87.     SHCOLSTATE_TYPE_INT     = 0x00000002,
  88.     SHCOLSTATE_TYPE_DATE    = 0x00000003,
  89.     SHCOLSTATE_TYPEMASK     = 0x0000000F,
  90.     SHCOLSTATE_ONBYDEFAULT  = 0x00000010,   // should on by default in details view
  91.     SHCOLSTATE_SLOW         = 0x00000020,   // will be slow to compute, do on a background thread
  92.     SHCOLSTATE_EXTENDED     = 0x00000040,   // provided by a handler, not the folder
  93.     SHCOLSTATE_SECONDARYUI  = 0x00000080,   // not displayed in context menu, but listed in the "More..." dialog
  94.     SHCOLSTATE_HIDDEN       = 0x00000100,   // not displayed in the UI
  95. } SHCOLSTATE;
  96. #undef  INTERFACE
  97. #define INTERFACE       IShellFolder2
  98. DECLARE_INTERFACE_(IShellFolder2, IShellFolder)
  99. {
  100.     // *** IUnknown methods ***
  101.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE;
  102.     STDMETHOD_(ULONG,AddRef)(THIS)  PURE;
  103.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  104.     // *** IShellFolder methods ***
  105.     STDMETHOD(ParseDisplayName)(THIS_ HWND hwnd, LPBC pbc, LPOLESTR pszDisplayName,
  106.                                 ULONG *pchEaten, LPITEMIDLIST *ppidl, ULONG *pdwAttributes) PURE;
  107.     STDMETHOD(EnumObjects)(THIS_ HWND hwnd, DWORD grfFlags, IEnumIDList **ppenumIDList) PURE;
  108.     STDMETHOD(BindToObject)(THIS_ LPCITEMIDLIST pidl, LPBC pbc, REFIID riid, void **ppv) PURE;
  109.     STDMETHOD(BindToStorage)(THIS_ LPCITEMIDLIST pidl, LPBC pbc, REFIID riid, void **ppv) PURE;
  110.     STDMETHOD(CompareIDs)(THIS_ LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) PURE;
  111.     STDMETHOD(CreateViewObject)(THIS_ HWND hwnd, REFIID riid, void **ppv) PURE;
  112.     STDMETHOD(GetAttributesOf)(THIS_ UINT cidl, LPCITEMIDLIST * apidl, ULONG * drgfInOut) PURE;
  113.     STDMETHOD(GetUIObjectOf)(THIS_ HWND hwnd, UINT cidl, LPCITEMIDLIST * apidl,
  114.                              REFIID riid, UINT * prgfInOut, void **ppv) PURE;
  115.     STDMETHOD(GetDisplayNameOf)(THIS_ LPCITEMIDLIST pidl, DWORD uFlags, STRRET *psr) PURE;
  116.     STDMETHOD(SetNameOf)(THIS_ HWND hwnd, LPCITEMIDLIST pidl, LPCOLESTR pszName,
  117.                          DWORD uFlags, LPITEMIDLIST *ppidl) PURE;
  118.     // *** IShellFolder2 methods ***
  119.     STDMETHOD(GetDefaultSearchGUID)(THIS_ GUID *pguid) PURE;
  120.     STDMETHOD(EnumSearches)(THIS_ IEnumExtraSearch **ppenum) PURE;
  121.     STDMETHOD(GetDefaultColumn) (THIS_ DWORD dwRes, ULONG *pSort, ULONG *pDisplay) PURE;
  122.     STDMETHOD(GetDefaultColumnState)(THIS_ UINT iColumn, DWORD *pcsFlags) PURE;
  123.     STDMETHOD(GetDetailsEx)(THIS_ LPCITEMIDLIST pidl, const SHCOLUMNID *pscid, VARIANT *pv) PURE;
  124.     STDMETHOD(GetDetailsOf)(THIS_ LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS *psd) PURE;
  125.     STDMETHOD(MapColumnToSCID)(THIS_ UINT iColumn, SHCOLUMNID *pscid) PURE;
  126. };
  127. #undef  INTERFACE
  128. #define INTERFACE   IShellDetails
  129. DECLARE_INTERFACE_(IShellDetails, IUnknown)
  130. {
  131.     // *** IUnknown methods ***
  132.     STDMETHOD(QueryInterface) (THIS_ REFIID riid, void **ppv) PURE;
  133.     STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
  134.     STDMETHOD_(ULONG,Release) (THIS) PURE;
  135.     // *** IShellDetails methods ***
  136.     STDMETHOD(GetDetailsOf)(THIS_ LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS *pDetails) PURE;
  137.     STDMETHOD(ColumnClick)(THIS_ UINT iColumn) PURE;
  138. };
  139. #endif
  140. #endif //__W2KFIX_H__