home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / addins / wins / windowslist.h < prev    next >
C/C++ Source or Header  |  1998-04-08  |  3KB  |  110 lines

  1. // WindowsList.h : Declaration of the CWindowsList
  2.  
  3. #ifndef __WINDOWSLIST_H_
  4. #define __WINDOWSLIST_H_
  5.  
  6. #include "wins.h"
  7. #include "resource.h"       // main symbols
  8. #include <ObjModel\addguid.h>
  9. #include <ObjModel\appguid.h>
  10. #include <ObjModel\bldguid.h>
  11. #include <ObjModel\textguid.h>
  12. #include <ObjModel\dbgguid.h>
  13.  
  14. #include "dirlist.h"
  15.  
  16. struct IGenericDocument;
  17.  
  18. /////////////////////////////////////////////////////////////////////////////
  19. // CWindowsList
  20. class ATL_NO_VTABLE CWindowsList : 
  21.     public CComObjectRootEx<CComSingleThreadModel>,
  22.     public CComCoClass<CWindowsList, &CLSID_WindowsList>,
  23.     public IDispatchImpl<IApplicationEvents, &IID_IApplicationEvents, &LIBID_WINSLib>,
  24.     public IDispatchImpl<IDebuggerEvents, &IID_IDebuggerEvents, &LIBID_WINSLib>,
  25.     public IDSAddIn,
  26.     public IDispatchImpl<IWindowsList, &IID_IWindowsList, &LIBID_WINSLib>
  27. {
  28. public:
  29.     CWindowsList()
  30.     {
  31.         m_cIgnoreSetDir = 0;
  32.         m_fAutoVis = FALSE;
  33.         m_fAutoSize = FALSE;
  34.         m_fAutoDir = FALSE;
  35.         m_lSize = 0;
  36.         m_iSortedCol = 0;
  37.     }
  38.     void SetCurrDir(LPCTSTR szDir);
  39.     void IgnoreNextSetDir();
  40.     HRESULT SetInfo(IGenericDocument *pGenDoc = NULL, BOOL fDoExtras = TRUE);
  41.     BOOL AddToList(LPCTSTR szDir, LPCTSTR szFile, LPCTSTR szFullPath, BOOL fTouch = TRUE);
  42.  
  43. DECLARE_REGISTRY_RESOURCEID(IDR_WINDOWSLIST)
  44.  
  45. BEGIN_COM_MAP(CWindowsList)
  46.     COM_INTERFACE_ENTRY(IWindowsList)
  47.     COM_INTERFACE_ENTRY2(IDispatch, IWindowsList)
  48.     COM_INTERFACE_ENTRY_IID(IID_IDSAddIn, IDSAddIn)
  49.     COM_INTERFACE_ENTRY_IID(IID_IApplicationEvents, IApplicationEvents)
  50.     COM_INTERFACE_ENTRY_IID(IID_IDebuggerEvents, IDebuggerEvents)
  51. END_COM_MAP()
  52.  
  53.     CComPtr<IApplication> m_spApplication;
  54.     DWORD m_dwAddInID;
  55.     DWORD m_dwAppEvents;
  56.     DWORD m_dwDbgEvents;
  57.  
  58. // IDSAddIn methods
  59. public:
  60.     STDMETHOD(OnConnection)(IApplication* pApp, VARIANT_BOOL bFirstTime, long dwCookie, VARIANT_BOOL* bOnConnection);
  61.     STDMETHOD(OnDisconnection)(VARIANT_BOOL bLastTime);
  62.  
  63. // IApplicationEvents methods
  64. public:
  65.     STDMETHOD(BeforeBuildStart)();
  66.     STDMETHOD(BuildFinish)(long nNumErrors, long nNumWarnings);
  67.     STDMETHOD(BeforeApplicationShutDown)();
  68.     STDMETHOD(DocumentOpen)(IDispatch *pDocument);
  69.     STDMETHOD(BeforeDocumentClose)(IDispatch *pDocument);
  70.     STDMETHOD(DocumentSave)(IDispatch *pDocument);
  71.     STDMETHOD(NewDocument)(IDispatch *pDocument);
  72.     STDMETHOD(WindowActivate)(IDispatch *pWindow);
  73.     STDMETHOD(WindowDeactivate)(IDispatch *pWindow);
  74.     STDMETHOD(WorkspaceOpen)();
  75.     STDMETHOD(WorkspaceClose)();
  76.     STDMETHOD(NewWorkspace)();
  77.  
  78. // IDebuggerEvents method
  79. public:
  80.     STDMETHOD(BreakpointHit)(IDispatch *pBreakpoint);
  81.  
  82. // IWindowsList
  83. public:
  84.     STDMETHOD(CloseDebugWnds)();
  85.     BOOL IsInDebugMode();
  86.     HRESULT GetSize(LPCTSTR szFilePath, CRect& rect);
  87.     STDMETHOD(SetVisible)();
  88.     int m_iSortedCol;
  89.     void Reset();
  90.     HRESULT FindDoc(LPCTSTR szFile, CComPtr<IGenericDocument>& pDoc, BOOL fOkToOpen = TRUE);
  91.     HRESULT DoMinWin();
  92.     STDMETHOD(WindowsManager)();
  93.     STDMETHOD(MinWin)();
  94.     STDMETHOD(SetLimit)();
  95.     STDMETHOD(MakeLimit)(IDispatch* pDispWindow = NULL);
  96.  
  97.     HRESULT OpenDoc(LPCTSTR szDoc, IGenericDocument **ppDoc = NULL);
  98.     HRESULT CloseDoc(LPCTSTR szDoc);
  99.     HRESULT DoMinWin(LPCTSTR szDoc);
  100. protected:
  101.     long m_lSize;
  102.     BOOL m_fAutoVis;
  103.     BOOL m_fAutoSize;
  104.     BOOL m_fAutoDir;
  105.     CDirList m_dirList;
  106.     int m_cIgnoreSetDir;
  107. };
  108.  
  109. #endif //__WINDOWSLIST_H_
  110.