Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

160 lines
4.4 KiB

//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995
//
// File: ofsfldr.h
//
// Contents: Interface declaration for the COFSFolder class
//
// Functions:
//
// History: 6-26-95 Davepl Created
//
//--------------------------------------------------------------------------
#ifndef _OFSFLDR_H
#define _OFSFLDR_H
//+-------------------------------------------------------------------------
//
// Class: COFSFolder
//
// Purpose: Subsumes the functionality of FSFolder and adds new
// OFS-specific stuff
//
// History: 6-26-95 Davepl Created
//
// Notes:
//
//--------------------------------------------------------------------------
class COFSFolder : public IShellFolder, public IShellIcon, public IPersistFolder
{
public:
UINT m_cRef;
CIDList * m_pidl; // Absolute IDList
int m_cHiddenFiles;
DWORD m_dwSize;
UINT m_wSpecialFID; // CSIDL_PROGRAMS if applicable
BOOL m_fIsDSFolder : 1; // This is a DS Folder
BOOL m_fCachedCLSID : 1; // clsidView is already cached
BOOL m_fHasCLSID : 1; // clsidView has a valid CLSID
CLSID m_clsidView; // CLSID for View object
//
// Constructor/Destructor
//
COFSFolder();
~COFSFolder();
//
// Initialization
//
HRESULT InitializeFromIDList(const CIDList * pidl,
REFIID riid,
LPVOID * ppvOut);
//
// IUnknown members
//
STDMETHOD(QueryInterface)(REFIID,
LPVOID*);
STDMETHOD_(ULONG,AddRef)();
STDMETHOD_(ULONG,Release)();
//
// IShellFolder methods
//
STDMETHOD(ParseDisplayName)(HWND hwnd,
LPBC pbcReserved,
LPOLESTR lpszDisplayName,
ULONG * pchEaten,
LPITEMIDLIST * ppidl,
ULONG *pdwAttributes);
STDMETHOD(EnumObjects)(HWND hwnd,
DWORD grfFlags,
LPENUMIDLIST * ppenumIDList);
STDMETHOD(BindToObject)(LPCITEMIDLIST pidl,
LPBC pbcReserved,
REFIID riid,
LPVOID * ppvOut);
STDMETHOD(BindToStorage)(LPCITEMIDLIST pidl,
LPBC pbcReserved,
REFIID riid,
LPVOID * ppvObj);
STDMETHOD(CompareIDs)(LPARAM lParam,
LPCITEMIDLIST pidl1,
LPCITEMIDLIST pidl2);
STDMETHOD(CreateViewObject)(HWND hwnd,
REFIID riid,
LPVOID * ppvOut);
STDMETHOD(GetAttributesOf)(UINT cidl,
LPCITEMIDLIST * apidl,
ULONG * rgfInOut);
STDMETHOD(GetUIObjectOf)(HWND hwnd,
UINT cidl,
LPCITEMIDLIST * apidl,
REFIID riid,
UINT * prgfInOut,
LPVOID * ppvOut);
STDMETHOD(GetDisplayNameOf)(LPCITEMIDLIST pidl,
DWORD uFlags,
LPSTRRET lpName);
STDMETHOD(SetNameOf)(HWND hwnd,
LPCITEMIDLIST pidl,
LPCOLESTR lpszName,
DWORD uFlags,
LPITEMIDLIST * ppidlOut);
//
// IPersist methods
//
STDMETHOD(GetClassID)(LPCLSID lpClassID);
//
// IPersistFolder methods
//
STDMETHOD(Initialize)(LPCITEMIDLIST pidl);
//
// IShellIcon methods
//
STDMETHOD(GetIconOf)(LPCITEMIDLIST pidl,
UINT flags,
LPINT lpIconIndex);
private:
//
// Custom Methods
//
HRESULT SynchronousQuery(TCHAR* szScope,
DWORD grfFlags,
CEnumOLEDB* pEnumOLEDB);
BOOL IsDSFolder(LPCITEMIDLIST pidl);
};
typedef COFSFolder *LPOFSFOLDER;
#endif // _OFSFLDR_H