Leaked source code of windows server 2003
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.
 
 
 
 
 
 

96 lines
3.4 KiB

/**************************************************************************
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.
Copyright 1998 Microsoft Corporation. All Rights Reserved.
**************************************************************************/
/**************************************************************************
File: ShlFldr.h
Description: CShellFolder definitions.
**************************************************************************/
#ifndef SHELLFOLDER_H
#define SHELLFOLDER_H
/**************************************************************************
#include statements
**************************************************************************/
#include <windows.h>
#include <shlobj.h>
#include "EnumIDL.h"
#include "PidlMgr.h"
/**************************************************************************
CShellFolder class definition
**************************************************************************/
class CShellFolder : public IShellFolder,
public IPersistFolder
{
friend class CShellView;
friend class CContextMenu;
friend class CDropTarget;
friend class CDataObject;
private:
DWORD m_ObjRefCount;
LPITEMIDLIST m_pidlRel;
LPITEMIDLIST m_pidlFQ;
CShellFolder *m_psfParent;
LPMALLOC m_pMalloc;
CPidlMgr *m_pPidlMgr;
IXMLDocument *m_pXMLDoc;
public:
CShellFolder(CShellFolder *pParent = NULL, LPCITEMIDLIST pidl = NULL);
~CShellFolder();
//IUnknown methods
STDMETHOD (QueryInterface) (REFIID riid, LPVOID * ppvObj);
STDMETHOD_ (ULONG, AddRef) (VOID);
STDMETHOD_ (ULONG, Release) (VOID);
//IShellFolder methods
STDMETHOD (ParseDisplayName) (HWND, LPBC, LPOLESTR, LPDWORD, LPITEMIDLIST*, LPDWORD);
STDMETHOD (EnumObjects) (HWND, DWORD, LPENUMIDLIST*);
STDMETHOD (BindToObject) (LPCITEMIDLIST, LPBC, REFIID, LPVOID*);
STDMETHOD (BindToStorage) (LPCITEMIDLIST, LPBC, REFIID, LPVOID*);
STDMETHOD (CompareIDs) (LPARAM, LPCITEMIDLIST, LPCITEMIDLIST);
STDMETHOD (CreateViewObject) (HWND, REFIID, LPVOID* );
STDMETHOD (GetAttributesOf) (UINT, LPCITEMIDLIST*, LPDWORD);
STDMETHOD (GetUIObjectOf) (HWND, UINT, LPCITEMIDLIST*, REFIID, LPUINT, LPVOID*);
STDMETHOD (GetDisplayNameOf) (LPCITEMIDLIST, DWORD, LPSTRRET);
STDMETHOD (SetNameOf) (HWND, LPCITEMIDLIST, LPCOLESTR, DWORD, LPITEMIDLIST*);
//IPersist methods
STDMETHODIMP GetClassID(LPCLSID);
//IPersistFolder methods
STDMETHODIMP Initialize(LPCITEMIDLIST);
private:
STDMETHOD (AddFolder)(LPCTSTR, LPITEMIDLIST*);
STDMETHOD (AddItem)(LPCTSTR, LPCTSTR, LPITEMIDLIST*);
STDMETHOD (SetItemData)(LPCITEMIDLIST, LPCTSTR);
STDMETHOD (GetUniqueName)(BOOL, LPTSTR, DWORD);
LPITEMIDLIST CreateFQPidl(LPCITEMIDLIST);
STDMETHOD (DeleteItems)(LPITEMIDLIST*, UINT);
STDMETHOD (CopyItems)(CShellFolder*, LPITEMIDLIST*, UINT);
VOID GetFullName(LPCITEMIDLIST, LPTSTR, DWORD);
VOID GetPath(LPCITEMIDLIST, LPTSTR, DWORD);
BOOL HasSubFolder(LPCITEMIDLIST);
VOID NotifyViews(DWORD, LPCITEMIDLIST, LPCITEMIDLIST);
STDMETHOD (CompareItems) (LPCITEMIDLIST, LPCITEMIDLIST);
};
#endif //SHELLFOLDER_H