IAGCScannerImpl.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #ifndef __IAGCScannerImpl_h__
  2. #define __IAGCScannerImpl_h__
  3. /////////////////////////////////////////////////////////////////////////////
  4. // IAGCScannerImpl.h : Declaration of the IAGCScannerImpl class template.
  5. //
  6. #include "IAGCDamageImpl.h"
  7. /////////////////////////////////////////////////////////////////////////////
  8. // Interface Map Macro
  9. //
  10. // Classes derived from IAGCScannerImpl should include this macro in their
  11. // interface maps.
  12. //
  13. #define COM_INTERFACE_ENTRIES_IAGCScannerImpl() \
  14. COM_INTERFACE_ENTRY(IAGCScanner) \
  15. COM_INTERFACE_ENTRY(IDispatch) \
  16. COM_INTERFACE_ENTRIES_IAGCDamageImpl()
  17. /////////////////////////////////////////////////////////////////////////////
  18. // IAGCScannerImpl
  19. //
  20. template <class T, class IGC, class ITF, const GUID* plibid, class AGCIGC = IGC, class AGCITF = ITF>
  21. class ATL_NO_VTABLE IAGCScannerImpl :
  22. public IAGCDamageImpl<T, IGC, ITF, plibid, AGCIGC, AGCITF>
  23. {
  24. // Types
  25. public:
  26. typedef IAGCScannerImpl<T, IGC, ITF, plibid, AGCIGC, AGCITF>
  27. IAGCScannerImplBase;
  28. // IAGCScanner Interface Methods
  29. public:
  30. STDMETHODIMP get_InScannerRange(IAGCModel* pModel, VARIANT_BOOL* pbInRange)
  31. {
  32. assert(GetIGC());
  33. IAGCPrivatePtr spPrivate(pModel);
  34. if (NULL == spPrivate)
  35. return E_INVALIDARG;
  36. CLEAROUT(pbInRange,
  37. VARBOOL(GetIGC()->InScannerRange((ImodelIGC*)spPrivate->GetIGCVoid())));
  38. return S_OK;
  39. }
  40. STDMETHODIMP get_CanSee(IAGCModel* pModel, VARIANT_BOOL* pbCanSee)
  41. {
  42. assert(GetIGC());
  43. IAGCPrivatePtr spPrivate(pModel);
  44. if (NULL == spPrivate)
  45. return E_INVALIDARG;
  46. CLEAROUT(pbCanSee,
  47. VARBOOL(GetIGC()->CanSee((ImodelIGC*)spPrivate->GetIGCVoid())));
  48. return S_OK;
  49. }
  50. };
  51. /////////////////////////////////////////////////////////////////////////////
  52. #endif //__IAGCScannerImpl_h__