#ifndef __IAGCAsteroidImpl_h__ #define __IAGCAsteroidImpl_h__ ///////////////////////////////////////////////////////////////////////////// // IAGCAsteroidImpl.h : Declaration of the IAGCAsteroidImpl class template. // #include "IAGCDamageImpl.h" ///////////////////////////////////////////////////////////////////////////// // Interface Map Macro // // Classes derived from IAGCAsteroidImpl should include this macro in their // interface maps. // #define COM_INTERFACE_ENTRIES_IAGCAsteroidImpl() \ COM_INTERFACE_ENTRY(IAGCAsteroid) \ COM_INTERFACE_ENTRY(IDispatch) \ COM_INTERFACE_ENTRIES_IAGCDamageImpl() ///////////////////////////////////////////////////////////////////////////// // IAGCAsteroidImpl // template class ATL_NO_VTABLE IAGCAsteroidImpl : public IAGCDamageImpl { // Types public: typedef IAGCAsteroidImpl IAGCAsteroidImplBase; // IAGCAsteroid Interface Methods 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 //__IAGCAsteroidImpl_h__