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.

134 lines
3.7 KiB

  1. //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
  2. //
  3. // cdfview.h
  4. //
  5. // The class definition for the cdf view class. This class implements the
  6. // IShelFolder interface.
  7. //
  8. // History:
  9. //
  10. // 3/16/97 edwardp Created.
  11. //
  12. ////////////////////////////////////////////////////////////////////////////////
  13. //
  14. // Check for previous includes of this file.
  15. //
  16. #ifndef _CDFVIEW_H_
  17. #define _CDFVIEW_H_
  18. //
  19. // Function prototypes.
  20. //
  21. HRESULT QueryInternetShortcut(LPCTSTR pszURL, REFIID riid, void** ppvOut);
  22. HRESULT QueryInternetShortcut(PCDFITEMIDLIST pcdfidl, REFIID riid,
  23. void** ppvOut);
  24. //
  25. // Class definition for the cdf view class.
  26. //
  27. class CCdfView : public IShellFolder,
  28. public CPersist
  29. {
  30. //
  31. // Methods
  32. //
  33. public:
  34. // Constructors
  35. CCdfView(void);
  36. CCdfView(PCDFITEMIDLIST pcdfidl,
  37. LPCITEMIDLIST pidlParentPath,
  38. IXMLElementCollection* pIXMLElementCollection);
  39. // IUnknown
  40. STDMETHODIMP QueryInterface(REFIID, void **);
  41. STDMETHODIMP_(ULONG) AddRef(void);
  42. STDMETHODIMP_(ULONG) Release(void);
  43. // IShellFolder
  44. STDMETHODIMP ParseDisplayName(HWND hwndOwner,
  45. LPBC pbcReserved,
  46. LPOLESTR lpszDisplayName,
  47. ULONG* pchEaten,
  48. LPITEMIDLIST* ppidl,
  49. ULONG* pdwAttributes);
  50. STDMETHODIMP EnumObjects(HWND hwndOwner,
  51. DWORD grfFlags,
  52. LPENUMIDLIST* ppenumIDList);
  53. STDMETHODIMP BindToObject(LPCITEMIDLIST pidl,
  54. LPBC pbcReserved,
  55. REFIID riid,
  56. LPVOID* ppvOut);
  57. STDMETHODIMP BindToStorage(LPCITEMIDLIST pidl,
  58. LPBC pbcReserved,
  59. REFIID riid,
  60. LPVOID* ppvObj);
  61. STDMETHODIMP CompareIDs(LPARAM lParam,
  62. LPCITEMIDLIST pidl1,
  63. LPCITEMIDLIST pidl2);
  64. STDMETHODIMP CreateViewObject(HWND hwndOwner,
  65. REFIID riid,
  66. LPVOID* ppvOut);
  67. STDMETHODIMP GetAttributesOf(UINT cidl,
  68. LPCITEMIDLIST* apidl,
  69. ULONG* pfAttributesOut);
  70. STDMETHODIMP GetUIObjectOf(HWND hwndOwner,
  71. UINT cidl,
  72. LPCITEMIDLIST* apidl,
  73. REFIID riid,
  74. UINT* prgfInOut,
  75. LPVOID * ppvOut);
  76. STDMETHODIMP GetDisplayNameOf(LPCITEMIDLIST pidl,
  77. DWORD uFlags,
  78. LPSTRRET lpName);
  79. STDMETHODIMP SetNameOf(HWND hwndOwner,
  80. LPCITEMIDLIST pidl,
  81. LPCOLESTR lpszName,
  82. DWORD uFlags,
  83. LPITEMIDLIST* ppidlOut);
  84. // IPersistFolder
  85. STDMETHODIMP Initialize(LPCITEMIDLIST pidl);
  86. private:
  87. // Destructor
  88. ~CCdfView(void);
  89. // Parsing helper functions.
  90. HRESULT ParseCdfFolder(HWND hwndOwner, DWORD dwParseFlags);
  91. // Folder helper functions.
  92. //
  93. // Member variables.
  94. //
  95. private:
  96. ULONG m_cRef;
  97. PCDFITEMIDLIST m_pcdfidl; // This folder's pidl
  98. LPITEMIDLIST m_pidlPath; // Path to this folder.
  99. IXMLElementCollection* m_pIXMLElementCollection;
  100. BOOL m_fIsRootFolder; // Is this the root folder.
  101. };
  102. #endif _CDFVIEW_H_