#ifndef __IAGCProbeImpl_h__ #define __IAGCProbeImpl_h__ ///////////////////////////////////////////////////////////////////////////// // IAGCProbeImpl.h : Declaration of the IAGCProbeImpl class template. // #include "IAGCScannerImpl.h" ///////////////////////////////////////////////////////////////////////////// // Interface Map Macro // // Classes derived from IAGCProbeImpl should include this macro in their // interface maps. // #define COM_INTERFACE_ENTRIES_IAGCProbeImpl() \ COM_INTERFACE_ENTRY(IAGCProbe) \ COM_INTERFACE_ENTRY(IDispatch) \ COM_INTERFACE_ENTRIES_IAGCScannerImpl() ///////////////////////////////////////////////////////////////////////////// // IAGCProbeImpl // template class ATL_NO_VTABLE IAGCProbeImpl : public IAGCScannerImpl { // Types public: typedef IAGCProbeImpl IAGCProbeImplBase; // IAGCProbe Interface Methods public: // STDMETHODIMP get_ProjectileType(IAGCProjectileType** ppType) // { // // Not currently supported // return E_NOTIMPL; // } STDMETHODIMP get_EmissionPoint(IAGCVector** ppEmissionPoint) { assert(GetIGC()); // Create an instance of the AGCVector object return GetAGCGlobal()->MakeAGCVector(&GetIGC()->GetEmissionPt(), ppEmissionPoint); } STDMETHODIMP get_Lifespan(float* pfLifespan) { assert(GetIGC()); CLEAROUT(pfLifespan, GetIGC()->GetLifespan()); return S_OK; } STDMETHODIMP get_DtBurst(float* pfDtBurst) { assert(GetIGC()); CLEAROUT(pfDtBurst, GetIGC()->GetDtBurst()); return S_OK; } STDMETHODIMP get_Accuracy(float* pfAccuracy) { assert(GetIGC()); CLEAROUT(pfAccuracy, GetIGC()->GetAccuracy()); return S_OK; } STDMETHODIMP get_IsRipcord(VARIANT_BOOL* pbIsRipcord) { assert(GetIGC()); CLEAROUT(pbIsRipcord, VARBOOL(GetIGC()->GetCanRipcord())); return S_OK; } }; ///////////////////////////////////////////////////////////////////////////// #endif //__IAGCProbeImpl_h__