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.

125 lines
3.7 KiB

  1. /**********************************************************************
  2. * FontFldr.h - Definition for the CFontFolder, our implementation for
  3. * the IShellFolder in our browser.
  4. *
  5. **********************************************************************/
  6. #if !defined(__FONTFLDR_H__)
  7. #define __FONTFLDR_H__
  8. // Forward declarations --------------------------------------------------
  9. //
  10. #if defined(__FCN__)
  11. #include "fsnotify.h" // for NOTIFYWATCH
  12. #endif
  13. #if !defined(__VIEWVECT_H__)
  14. #include "viewvect.h"
  15. #endif
  16. class CFontList;
  17. class CFontView;
  18. // ********************************************************************
  19. class CFontFolder : public IShellFolder, public IPersistFolder
  20. {
  21. public:
  22. CFontFolder();
  23. ~CFontFolder();
  24. int Init();
  25. // Utility functions.
  26. //
  27. CFontList * poFontList ( );
  28. BOOL bRefresh( );
  29. BOOL bRefView( CFontView * poView );
  30. BOOL bReleaseView( CFontView * poView );
  31. #if defined(__FCN__)
  32. VOID vReconcileFolder( ); // Launch a thread to call vDoReconcileFolder
  33. VOID vDoReconcileFolder( );
  34. #endif
  35. // *** IUnknown methods ***
  36. STDMETHODIMP QueryInterface( REFIID riid, LPVOID FAR* ppvObj );
  37. STDMETHODIMP_(ULONG) AddRef( void );
  38. STDMETHODIMP_(ULONG) Release( void );
  39. // *** IShellFolder methods ***
  40. STDMETHODIMP ParseDisplayName ( HWND hwndOwner,
  41. LPBC pbc,
  42. LPOLESTR lpszDisplayName,
  43. ULONG * pchEaten,
  44. LPITEMIDLIST * ppidl,
  45. ULONG *pdwAttributes) ;
  46. STDMETHODIMP EnumObjects( HWND hwndOwner,
  47. DWORD grfFlags,
  48. LPENUMIDLIST * ppenumIDList) ;
  49. STDMETHODIMP BindToObject( LPCITEMIDLIST pidl,
  50. LPBC pbcReserved,
  51. REFIID riid,
  52. LPVOID * ppvOut) ;
  53. STDMETHODIMP BindToStorage( LPCITEMIDLIST pidl,
  54. LPBC pbcReserved,
  55. REFIID riid,
  56. LPVOID * ppvObj) ;
  57. STDMETHODIMP CompareIDs( LPARAM lParam,
  58. LPCITEMIDLIST pidl1,
  59. LPCITEMIDLIST pidl2) ;
  60. STDMETHODIMP CreateViewObject( HWND hwndOwner,
  61. REFIID riid,
  62. LPVOID * ppvOut) ;
  63. STDMETHODIMP GetAttributesOf( UINT cidl,
  64. LPCITEMIDLIST * apidl,
  65. ULONG * rgfInOut) ;
  66. STDMETHODIMP GetUIObjectOf( HWND hwndOwner,
  67. UINT cidl,
  68. LPCITEMIDLIST * apidl,
  69. REFIID riid,
  70. UINT * prgfInOut,
  71. LPVOID * ppvOut) ;
  72. STDMETHODIMP GetDisplayNameOf( LPCITEMIDLIST pidl,
  73. DWORD uFlags,
  74. LPSTRRET lpName) ;
  75. STDMETHODIMP SetNameOf( HWND hwndOwner,
  76. LPCITEMIDLIST pidl,
  77. LPCOLESTR lpszName,
  78. DWORD uFlags,
  79. LPITEMIDLIST * ppidlOut) ;
  80. // *** IPersist methods ***
  81. STDMETHODIMP GetClassID( LPCLSID lpClassID );
  82. // *** IPersistFolder methods ***
  83. STDMETHODIMP Initialize( LPCITEMIDLIST pidl );
  84. private:
  85. static int sm_id;
  86. int m_id;
  87. int m_cRef;
  88. #if defined(__FCN__)
  89. NOTIFYWATCH m_Notify;
  90. HANDLE m_hNotifyThread;
  91. #endif
  92. CViewVector * m_poViewList;
  93. };
  94. #endif // __FONTFLDR_H__
  95.