home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / common / msdev98 / template / atl / addin.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-06-16  |  3.2 KB  |  119 lines

  1. // [!HeaderName] : Declaration of the [!ClassName]
  2. [!crlf]
  3.  
  4. [!if=(FileExists, "FALSE")]
  5. #ifndef __[!UpperShortName]_H_
  6. #define __[!UpperShortName]_H_
  7. [!crlf]
  8. #include "resource.h"       // main symbols
  9. #include <ObjModel\addguid.h>
  10. #include <ObjModel\appguid.h>
  11. #include <ObjModel\bldguid.h>
  12. #include <ObjModel\textguid.h>
  13. #include <ObjModel\dbgguid.h>
  14. [!else]
  15. [!AddIncludeFile(TargetFile, "resource.h")]
  16. [!AddIncludeFile(TargetFile, "<ObjModel\addguid.h>)]
  17. [!AddIncludeFile(TargetFile, "<ObjModel\appguid.h>)]
  18. [!AddIncludeFile(TargetFile, "<ObjModel\bldguid.h>)]
  19. [!AddIncludeFile(TargetFile, "<ObjModel\textguid.h>)]
  20. [!AddIncludeFile(TargetFile, "<ObjModel\dbgguid.h>)]
  21. [!endif]
  22.  
  23. [!crlf]
  24. /////////////////////////////////////////////////////////////////////////////
  25. // [!ClassName]
  26.  
  27. class ATL_NO_VTABLE [!ClassName] : 
  28.     public CComObjectRootEx<CComSingleThreadModel>,
  29.     public CComCoClass<[!ClassName], &CLSID_[!CoClassName]>,
  30. [!if=(ApplicationEvents, "TRUE")]
  31.     public IDispatchImpl<IApplicationEvents, &IID_IApplicationEvents, &LIBID_[!LibName]>,
  32. [!endif]
  33. [!if=(DebuggerEvents, "TRUE")]
  34.     public IDispatchImpl<IDebuggerEvents, &IID_IDebuggerEvents, &LIBID_[!LibName]>,
  35. [!endif]
  36.     public IDSAddIn,
  37.     public IDispatchImpl<[!InterfaceName], &IID_[!InterfaceName], &LIBID_[!LibName]>
  38. {
  39. public:
  40.     [!ClassName]()
  41.     {
  42.     }
  43.  
  44. [!crlf]
  45. DECLARE_REGISTRY_RESOURCEID([!IDR_REGISTRYID])
  46. [!crlf]
  47. DECLARE_PROTECT_FINAL_CONSTRUCT()
  48.  
  49. [!crlf]
  50. BEGIN_COM_MAP([!ClassName])
  51.     COM_INTERFACE_ENTRY([!InterfaceName])
  52.     COM_INTERFACE_ENTRY2(IDispatch, [!InterfaceName])
  53.     COM_INTERFACE_ENTRY(IDSAddIn)
  54. [!if=(ApplicationEvents, "TRUE")]
  55.     COM_INTERFACE_ENTRY(IApplicationEvents)
  56. [!endif]
  57. [!if=(DebuggerEvents, "TRUE")]
  58.     COM_INTERFACE_ENTRY(IDebuggerEvents)
  59. [!endif]
  60. END_COM_MAP()
  61.  
  62. [!crlf]
  63.     CComPtr<IApplication> m_spApplication;
  64.     DWORD m_dwAddInID;
  65. [!if=(ApplicationEvents, "TRUE")]
  66.     DWORD m_dwAppEvents;
  67. [!endif]
  68. [!if=(DebuggerEvents, "TRUE")]
  69.     DWORD m_dwDbgEvents;
  70. [!endif]
  71. [!crlf]
  72.  
  73. // IDSAddIn methods
  74. public:
  75.     STDMETHOD(OnConnection)(IApplication* pApp, VARIANT_BOOL bFirstTime, long dwCookie, VARIANT_BOOL* bOnConnection);
  76.     STDMETHOD(OnDisconnection)(VARIANT_BOOL bLastTime);
  77. [!crlf]
  78.  
  79. [!if=(ApplicationEvents, "TRUE")]
  80. // IApplicationEvents methods
  81. public:
  82.     STDMETHOD(BeforeBuildStart)();
  83.     STDMETHOD(BuildFinish)(long nNumErrors, long nNumWarnings);
  84.     STDMETHOD(BeforeApplicationShutDown)();
  85.     STDMETHOD(DocumentOpen)(IDispatch *pDocument);
  86.     STDMETHOD(BeforeDocumentClose)(IDispatch *pDocument);
  87.     STDMETHOD(DocumentSave)(IDispatch *pDocument);
  88.     STDMETHOD(NewDocument)(IDispatch *pDocument);
  89.     STDMETHOD(WindowActivate)(IDispatch *pWindow);
  90.     STDMETHOD(WindowDeactivate)(IDispatch *pWindow);
  91.     STDMETHOD(WorkspaceOpen)();
  92.     STDMETHOD(WorkspaceClose)();
  93.     STDMETHOD(NewWorkspace)();
  94. [!crlf]
  95. [!endif]
  96.  
  97. [!if=(DebuggerEvents, "TRUE")]
  98. // IDebuggerEvents method
  99. public:
  100.     STDMETHOD(BreakpointHit)(IDispatch *pBreakpoint);
  101. [!crlf]
  102. [!endif]
  103.  
  104. // [!InterfaceName]
  105. public:
  106. [!if=(Toolbar, "TRUE")]
  107. [!if!=(MethodName, "")]
  108.     STDMETHOD([!MethodName])();
  109. [!else]
  110.     STDMETHOD(SampleMethod)();
  111. [!endif]
  112. [!endif]
  113. };
  114.  
  115. [!crlf]
  116. [!if=(FileExists, "FALSE")]
  117. #endif //__[!UpperShortName]_H_
  118. [!endif]
  119.