home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / winui / shell / regview / shlview.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-08-27  |  4.2 KB  |  142 lines

  1. /**************************************************************************
  2.    THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  3.    ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  4.    THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  5.    PARTICULAR PURPOSE.
  6.  
  7.    Copyright 1997 Microsoft Corporation.  All Rights Reserved.
  8. **************************************************************************/
  9.  
  10. /**************************************************************************
  11.  
  12.    File:          ShlView.h
  13.    
  14.    Description:   CShellView definitions.
  15.  
  16. **************************************************************************/
  17.  
  18. #ifndef SHELLVIEW_H
  19. #define SHELLVIEW_H
  20.  
  21. #include <windows.h>
  22. #include <windowsx.h>
  23. #include <objbase.h>
  24. #include <shlobj.h>
  25. #include <ServProv.h>
  26. #include <DocObj.h>
  27. #include "ShlFldr.h"
  28. #include "PidlMgr.h"
  29. #include "DockWndw.h"
  30.  
  31. /**************************************************************************
  32.  
  33.    global variables
  34.  
  35. **************************************************************************/
  36.  
  37. extern HINSTANCE  g_hInst;
  38. extern UINT       g_DllRefCount;
  39. extern HIMAGELIST g_himlLarge;
  40. extern HIMAGELIST g_himlSmall;
  41.  
  42. /**************************************************************************
  43.  
  44.    global IDs
  45.  
  46. **************************************************************************/
  47.  
  48. #define NS_CLASS_NAME   (TEXT("RegViewNSClass"))
  49.  
  50. //menu items
  51. #define IDM_VIEW_KEYS   (FCIDM_SHVIEWFIRST + 0x500)
  52. #define IDM_VIEW_IDW    (FCIDM_SHVIEWFIRST + 0x501)
  53. #define IDM_MYFILEITEM  (FCIDM_SHVIEWFIRST + 0x502)
  54.  
  55. //control IDs
  56. #define ID_LISTVIEW     2000
  57.  
  58. /**************************************************************************
  59.  
  60.    CShellView class definition
  61.  
  62. **************************************************************************/
  63.  
  64. class CShellView : public IShellView, public IOleCommandTarget
  65. {
  66. friend CDockingWindow;
  67.  
  68. protected:
  69.    DWORD m_ObjRefCount;
  70.    
  71. public:
  72.    CShellView(CShellFolder*, LPCITEMIDLIST);
  73.    ~CShellView();
  74.    
  75.    //IUnknown methods
  76.    STDMETHOD (QueryInterface)(REFIID, LPVOID*);
  77.    STDMETHOD_ (DWORD, AddRef)();
  78.    STDMETHOD_ (DWORD, Release)();
  79.    
  80.    //IOleWindow methods
  81.    STDMETHOD (GetWindow) (HWND*);
  82.    STDMETHOD (ContextSensitiveHelp) (BOOL);
  83.  
  84.    //IShellView methods
  85.    STDMETHOD (TranslateAccelerator) (LPMSG);
  86.    STDMETHOD (EnableModeless) (BOOL);
  87.    STDMETHOD (UIActivate) (UINT);
  88.    STDMETHOD (Refresh) (void);
  89.    STDMETHOD (CreateViewWindow) (LPSHELLVIEW, LPCFOLDERSETTINGS, LPSHELLBROWSER, LPRECT, HWND*);
  90.    STDMETHOD (DestroyViewWindow) (void);
  91.    STDMETHOD (GetCurrentInfo) (LPFOLDERSETTINGS);
  92.    STDMETHOD (AddPropertySheetPages) (DWORD, LPFNADDPROPSHEETPAGE, LPARAM);
  93.    STDMETHOD (SaveViewState) (void);
  94.    STDMETHOD (SelectItem) (LPCITEMIDLIST, UINT);
  95.    STDMETHOD (GetItemObject) (UINT, REFIID, LPVOID*);
  96.  
  97.    //IOleCommandTarget methods
  98.    STDMETHOD (QueryStatus) (const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText);
  99.    STDMETHOD (Exec) (const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdExecOpt, VARIANTARG *pvaIn, VARIANTARG *pvaOut);
  100.  
  101. private:
  102.     //private member variables
  103.    UINT m_uState;
  104.     HKEY m_hKeyRoot;
  105.     LPITEMIDLIST m_pidl;
  106.     FOLDERSETTINGS m_FolderSettings;
  107.     LPSHELLBROWSER m_pShellBrowser;
  108.     HWND m_hwndParent;
  109.     HWND m_hWnd;
  110.     HWND m_hwndList;
  111.     HMENU m_hMenu;
  112.    CShellFolder *m_pSFParent;
  113.     LPMALLOC m_pMalloc;
  114.    LPPIDLMGR m_pPidlMgr;
  115.     CDockingWindow* m_pDockingWindow;
  116.  
  117.     //private member functions
  118.    static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam);
  119.     LRESULT UpdateMenu(HMENU hMenu);
  120.     HMENU BuildRegistryMenu(void);
  121.     void MergeFileMenu(HMENU);
  122.     void MergeViewMenu(HMENU);
  123.     LRESULT OnCommand(DWORD, DWORD, HWND);
  124.     LRESULT OnActivate(UINT);
  125.     void OnDeactivate(void);
  126.     LRESULT OnSetFocus(void);
  127.     LRESULT OnKillFocus(void);
  128.     LRESULT OnNotify(UINT, LPNMHDR);
  129.     LRESULT OnSize(WORD, WORD);
  130.     LRESULT OnCreate(void);
  131.     BOOL CreateList(void);
  132.     BOOL InitList(void);
  133.     void FillList(void);
  134.     BOOL CanDoIDockingWindow(void);
  135.     BOOL AddRemoveDockingWindow(BOOL);
  136.     LRESULT OnSettingChange(LPCTSTR);
  137.    void UpdateShellSettings(void);
  138.  
  139. };
  140.  
  141. #endif   //SHELLVIEW_H
  142.