windows-nt/Source/XPSP1/NT/shell/ext/cdfview/cdfview.h
2020-09-26 16:20:57 +08:00

135 lines
3.7 KiB
C++

//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
//
// cdfview.h
//
// The class definition for the cdf view class. This class implements the
// IShelFolder interface.
//
// History:
//
// 3/16/97 edwardp Created.
//
////////////////////////////////////////////////////////////////////////////////
//
// Check for previous includes of this file.
//
#ifndef _CDFVIEW_H_
#define _CDFVIEW_H_
//
// Function prototypes.
//
HRESULT QueryInternetShortcut(LPCTSTR pszURL, REFIID riid, void** ppvOut);
HRESULT QueryInternetShortcut(PCDFITEMIDLIST pcdfidl, REFIID riid,
void** ppvOut);
//
// Class definition for the cdf view class.
//
class CCdfView : public IShellFolder,
public CPersist
{
//
// Methods
//
public:
// Constructors
CCdfView(void);
CCdfView(PCDFITEMIDLIST pcdfidl,
LPCITEMIDLIST pidlParentPath,
IXMLElementCollection* pIXMLElementCollection);
// IUnknown
STDMETHODIMP QueryInterface(REFIID, void **);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
// IShellFolder
STDMETHODIMP ParseDisplayName(HWND hwndOwner,
LPBC pbcReserved,
LPOLESTR lpszDisplayName,
ULONG* pchEaten,
LPITEMIDLIST* ppidl,
ULONG* pdwAttributes);
STDMETHODIMP EnumObjects(HWND hwndOwner,
DWORD grfFlags,
LPENUMIDLIST* ppenumIDList);
STDMETHODIMP BindToObject(LPCITEMIDLIST pidl,
LPBC pbcReserved,
REFIID riid,
LPVOID* ppvOut);
STDMETHODIMP BindToStorage(LPCITEMIDLIST pidl,
LPBC pbcReserved,
REFIID riid,
LPVOID* ppvObj);
STDMETHODIMP CompareIDs(LPARAM lParam,
LPCITEMIDLIST pidl1,
LPCITEMIDLIST pidl2);
STDMETHODIMP CreateViewObject(HWND hwndOwner,
REFIID riid,
LPVOID* ppvOut);
STDMETHODIMP GetAttributesOf(UINT cidl,
LPCITEMIDLIST* apidl,
ULONG* pfAttributesOut);
STDMETHODIMP GetUIObjectOf(HWND hwndOwner,
UINT cidl,
LPCITEMIDLIST* apidl,
REFIID riid,
UINT* prgfInOut,
LPVOID * ppvOut);
STDMETHODIMP GetDisplayNameOf(LPCITEMIDLIST pidl,
DWORD uFlags,
LPSTRRET lpName);
STDMETHODIMP SetNameOf(HWND hwndOwner,
LPCITEMIDLIST pidl,
LPCOLESTR lpszName,
DWORD uFlags,
LPITEMIDLIST* ppidlOut);
// IPersistFolder
STDMETHODIMP Initialize(LPCITEMIDLIST pidl);
private:
// Destructor
~CCdfView(void);
// Parsing helper functions.
HRESULT ParseCdfFolder(HWND hwndOwner, DWORD dwParseFlags);
// Folder helper functions.
//
// Member variables.
//
private:
ULONG m_cRef;
PCDFITEMIDLIST m_pcdfidl; // This folder's pidl
LPITEMIDLIST m_pidlPath; // Path to this folder.
IXMLElementCollection* m_pIXMLElementCollection;
BOOL m_fIsRootFolder; // Is this the root folder.
};
#endif _CDFVIEW_H_