|
|
/**************************************************************************
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: ShlView.h Description: CShellView definitions.
**************************************************************************/
#ifndef SHELLVIEW_H
#define SHELLVIEW_H
#include <windows.h>
#include <windowsx.h>
#include <objbase.h>
#include <shlobj.h>
#include <ServProv.h>
#include <DocObj.h>
#include "ShlFldr.h"
#include "PidlMgr.h"
#include "ContMenu.h"
/**************************************************************************
global IDs **************************************************************************/
//control IDs
#define ID_LISTVIEW 2000
/**************************************************************************
CShellView class definition
**************************************************************************/
class CShellView : public IShellView { friend class CShellFolder; friend class CContextMenu;
private: DWORD m_ObjRefCount; UINT m_uState; LPITEMIDLIST m_pidl; FOLDERSETTINGS m_FolderSettings; LPSHELLBROWSER m_pShellBrowser; HWND m_hwndParent; HWND m_hWnd; HWND m_hwndList; HMENU m_hMenu; CShellFolder *m_psfParent; LPMALLOC m_pMalloc; CPidlMgr *m_pPidlMgr; HACCEL m_hAccels; BOOL m_fInEdit; public: CShellView(CShellFolder*, LPCITEMIDLIST); ~CShellView(); //IUnknown methods
STDMETHOD (QueryInterface)(REFIID, LPVOID*); STDMETHOD_ (DWORD, AddRef)(); STDMETHOD_ (DWORD, Release)(); //IOleWindow methods
STDMETHOD (GetWindow) (HWND*); STDMETHOD (ContextSensitiveHelp) (BOOL);
//IShellView methods
STDMETHOD (TranslateAccelerator) (LPMSG); STDMETHOD (EnableModeless) (BOOL); STDMETHOD (UIActivate) (UINT); STDMETHOD (Refresh) (VOID); STDMETHOD (CreateViewWindow) (LPSHELLVIEW, LPCFOLDERSETTINGS, LPSHELLBROWSER, LPRECT, HWND*); STDMETHOD (DestroyViewWindow) (VOID); STDMETHOD (GetCurrentInfo) (LPFOLDERSETTINGS); STDMETHOD (AddPropertySheetPages) (DWORD, LPFNADDPROPSHEETPAGE, LPARAM); STDMETHOD (SaveViewState) (VOID); STDMETHOD (SelectItem) (LPCITEMIDLIST, UINT); STDMETHOD (GetItemObject) (UINT, REFIID, LPVOID*);
private: static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam); LRESULT UpdateMenu(HMENU hMenu); LRESULT UpdateToolbar(VOID); VOID MergeFileMenu(HMENU, BOOL); VOID MergeViewMenu(HMENU); VOID MergeEditMenu(HMENU, BOOL); VOID MergeToolbar(VOID); LRESULT OnCommand(DWORD, DWORD, HWND); LRESULT OnActivate(UINT); VOID OnDeactivate(VOID); LRESULT OnSetFocus(VOID); LRESULT OnKillFocus(VOID); LRESULT OnNotify(UINT, LPNMHDR); LRESULT OnSize(WORD, WORD); LRESULT OnCreate(VOID); LRESULT OnDestroy(VOID); BOOL CreateList(VOID); BOOL InitList(VOID); VOID FillList(VOID); LRESULT OnSettingChange(LPCTSTR); VOID GetShellSettings(VOID); VOID DoContextMenu(WORD, WORD, BOOL, DWORD); int FindItemPidl(LPCITEMIDLIST); LRESULT OnViewLarge(VOID); LRESULT OnViewSmall(VOID); LRESULT OnViewList(VOID); LRESULT OnViewDetails(VOID); BOOL AddItem(LPCITEMIDLIST); BOOL DeleteItem(LPCITEMIDLIST); BOOL RenameItem(LPCITEMIDLIST, LPCITEMIDLIST); LPITEMIDLIST GetPidl(); LPITEMIDLIST GetFQPidl(); VOID MarkItemsAsCut(LPCITEMIDLIST*, UINT); VOID EditItem(LPCITEMIDLIST); VOID UpdateData(LPCITEMIDLIST);
};
#endif //SHELLVIEW_H
|