options.h
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 2k
Category:

Windows Kernel

Development Platform:

Visual C++

  1. #ifndef _OPTIONS_H_
  2. #define _OPTIONS_H_
  3. #include "cowsite.h"
  4. BOOL CALLBACK FolderOptionsDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
  5. void DoGlobalFolderOptions(void);
  6. class CFolderOptionsPsx :
  7.         public
  8.                IShellPropSheetExt,
  9.                IShellExtInit,
  10.                CObjectWithSite
  11. {
  12. public:
  13.     // IUnknown
  14.     STDMETHOD(QueryInterface)(REFIID riid, void **ppvObj);
  15.     STDMETHOD_(ULONG,AddRef)(void);
  16.     STDMETHOD_(ULONG,Release)(void);
  17.     // IShellPropSheetExt
  18.     STDMETHOD(AddPages)(THIS_ LPFNADDPROPSHEETPAGE lpfnAddPage, LPARAM lParam);
  19.     STDMETHOD(ReplacePage)(THIS_ UINT uPageID, LPFNADDPROPSHEETPAGE lpfnReplaceWith, LPARAM lParam);
  20.     // IShellExtInit
  21.     STDMETHOD(Initialize)(THIS_ LPCITEMIDLIST pidlFolder, IDataObject *pdtobj, HKEY hkeyProgID);
  22.     void SetNeedRefresh(BOOL fNeedRefresh) { m_fNeedRefresh = fNeedRefresh; }
  23.     BOOL NeedRefresh() { return m_fNeedRefresh; }
  24.     BOOL HasBrowserService() { return m_pbs2 != NULL; }
  25.     void SetAsDefFolderSettings()
  26.     { if (HasBrowserService()) m_pbs2->SetAsDefFolderSettings(); }
  27.     HRESULT GetDefFolderSettings(DEFFOLDERSETTINGS *pdfs, int cbDfs)
  28.                 { return m_pgfs->Get(pdfs, cbDfs); }
  29.     HRESULT SetDefFolderSettings(const DEFFOLDERSETTINGS *pdfs, int cbDfs, UINT flags)
  30.                 { return m_pgfs->Set(pdfs, cbDfs, flags); }
  31.     HRESULT ResetDefFolderSettings()
  32.                 { return m_pgfs->Set(NULL, 0, GFSS_SETASDEFAULT); }
  33. private:
  34.     CFolderOptionsPsx();
  35.     ~CFolderOptionsPsx();
  36.     LONG m_cRef;
  37.     BOOL m_fNeedRefresh;
  38.     IBrowserService2 *m_pbs2;
  39.     IGlobalFolderSettings *m_pgfs;
  40.     friend HRESULT CFolderOptionsPsx_CreateInstance(LPUNKNOWN punkOuter, REFIID riid, void **ppvOut);
  41.     static UINT CALLBACK PropCallback(HWND hwnd, UINT uMsg, LPPROPSHEETPAGE ppsp);
  42. };
  43. #endif // _OPTIONS_H_