#ifndef __IAGCAsteroidImpl_h__
#define __IAGCAsteroidImpl_h__
#include "IAGCDamageImpl.h"
#define COM_INTERFACE_ENTRIES_IAGCAsteroidImpl() \
COM_INTERFACE_ENTRY(IAGCAsteroid) \
COM_INTERFACE_ENTRY(IDispatch) \
COM_INTERFACE_ENTRIES_IAGCDamageImpl()
template <class T, class IGC, class ITF, const GUID* plibid, class AGCIGC = IGC, class AGCITF = ITF>
class ATL_NO_VTABLE IAGCAsteroidImpl :
public IAGCDamageImpl<T, IGC, ITF, plibid, AGCIGC, AGCITF>
{
public:
typedef IAGCAsteroidImpl<T, IGC, ITF, plibid, AGCIGC, AGCITF>
IAGCAsteroidImplBase;
public:
STDMETHODIMP get_Ore(float* pfOre)
{
assert(GetIGC());
CLEAROUT(pfOre, GetIGC()->GetOre());
return S_OK;
}
STDMETHODIMP get_Capabilities(AGCAsteroidAbilityBitMask* paabmCapabilities)
{
assert(GetIGC());
CLEAROUT(paabmCapabilities,
(AGCAsteroidAbilityBitMask)GetIGC()->GetCapabilities());
return S_OK;
}
STDMETHODIMP get_HasCapability(AGCAsteroidAbilityBitMask aabm,
VARIANT_BOOL* pbHasCapability)
{
assert(GetIGC());
CLEAROUT(pbHasCapability,
VARBOOL(GetIGC()->HasCapability((AsteroidAbilityBitMask)aabm)));
return S_OK;
}
};
#endif