mirror of https://github.com/tongzx/nt5src
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.
110 lines
2.7 KiB
110 lines
2.7 KiB
#ifndef SHVIEW_H
|
|
#define SHVIEW_H
|
|
|
|
#define NS_CLASS_NAME (TEXT("PStoreNSClass"))
|
|
|
|
//
|
|
// menu items
|
|
//
|
|
|
|
#define IDM_MESSAGE1 (FCIDM_SHVIEWFIRST + 0x500)
|
|
#define IDM_MESSAGE2 (FCIDM_SHVIEWFIRST + 0x501)
|
|
#define IDM_VIEW_ISTB (FCIDM_SHVIEWFIRST + 0x502)
|
|
#define IDM_VIEW_IETB (FCIDM_SHVIEWFIRST + 0x503)
|
|
|
|
//
|
|
// control IDs
|
|
//
|
|
|
|
#define ID_LISTVIEW 2000
|
|
|
|
|
|
class CShellView : public IShellView, public IOleCommandTarget
|
|
{
|
|
protected:
|
|
LONG m_ObjRefCount;
|
|
|
|
public:
|
|
CShellView(CShellFolder*, LPCITEMIDLIST);
|
|
~CShellView();
|
|
|
|
//
|
|
// IUnknown methods
|
|
//
|
|
|
|
STDMETHOD (QueryInterface)(REFIID, LPVOID FAR *);
|
|
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*);
|
|
|
|
//
|
|
// IOleCommandTarget methods
|
|
//
|
|
|
|
STDMETHOD (QueryStatus) (const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText);
|
|
STDMETHOD (Exec) (const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdExecOpt, VARIANTARG *pvaIn, VARIANTARG *pvaOut);
|
|
|
|
private:
|
|
//
|
|
// private member variables
|
|
//
|
|
|
|
UINT m_uState;
|
|
BOOL m_bShowIETB;
|
|
BOOL m_bShowISTB;
|
|
LPITEMIDLIST m_pidl;
|
|
OLEMENUGROUPWIDTHS m_MenuWidths;
|
|
FOLDERSETTINGS m_FolderSettings;
|
|
LPSHELLBROWSER m_pShellBrowser;
|
|
HWND m_hwndParent;
|
|
HWND m_hWnd;
|
|
HWND m_hwndList;
|
|
HMENU m_hMenu;
|
|
int m_nColumn1;
|
|
int m_nColumn2;
|
|
CShellFolder *m_pSFParent;
|
|
|
|
//
|
|
// private member functions
|
|
//
|
|
|
|
static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam);
|
|
void UpdateToolbar();
|
|
LRESULT UpdateMenu(HMENU hMenu);
|
|
HRESULT GetSettings(void);
|
|
HRESULT SaveSettings(void);
|
|
HMENU BuildMenu(void);
|
|
LRESULT OnCommand(DWORD, DWORD, HWND);
|
|
LRESULT OnActivate(WPARAM wParam, LPARAM lParam);
|
|
LRESULT OnSetFocus(void);
|
|
LRESULT OnNotify(UINT, LPNMHDR);
|
|
LRESULT OnSize(WORD, WORD);
|
|
LRESULT OnCreate(void);
|
|
BOOL CreateList(void);
|
|
BOOL InitList(void);
|
|
BOOL FillList(void);
|
|
};
|
|
|
|
#endif // SHVIEW_H
|