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

Windows Kernel

Development Platform:

Visual C++

  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_