#ifndef __IAGCProbeImpl_h__
#define __IAGCProbeImpl_h__
#include "IAGCScannerImpl.h"
#define COM_INTERFACE_ENTRIES_IAGCProbeImpl() \
COM_INTERFACE_ENTRY(IAGCProbe) \
COM_INTERFACE_ENTRY(IDispatch) \
COM_INTERFACE_ENTRIES_IAGCScannerImpl()
template <class T, class IGC, class ITF, const GUID* plibid>
class ATL_NO_VTABLE IAGCProbeImpl :
public IAGCScannerImpl<T, IGC, ITF, plibid, IprobeIGC, IAGCProbe>
{
public:
typedef IAGCProbeImpl<T, IGC, ITF, plibid> IAGCProbeImplBase;
public:
STDMETHODIMP get_EmissionPoint(IAGCVector** ppEmissionPoint)
{
assert(GetIGC());
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