#ifndef __IAGCScannerImpl_h__
#define __IAGCScannerImpl_h__
#include "IAGCDamageImpl.h"
#define COM_INTERFACE_ENTRIES_IAGCScannerImpl() \
COM_INTERFACE_ENTRY(IAGCScanner) \
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 IAGCScannerImpl :
public IAGCDamageImpl<T, IGC, ITF, plibid, AGCIGC, AGCITF>
{
public:
typedef IAGCScannerImpl<T, IGC, ITF, plibid, AGCIGC, AGCITF>
IAGCScannerImplBase;
public:
STDMETHODIMP get_InScannerRange(IAGCModel* pModel, VARIANT_BOOL* pbInRange)
{
assert(GetIGC());
IAGCPrivatePtr spPrivate(pModel);
if (NULL == spPrivate)
return E_INVALIDARG;
CLEAROUT(pbInRange,
VARBOOL(GetIGC()->InScannerRange((ImodelIGC*)spPrivate->GetIGCVoid())));
return S_OK;
}
STDMETHODIMP get_CanSee(IAGCModel* pModel, VARIANT_BOOL* pbCanSee)
{
assert(GetIGC());
IAGCPrivatePtr spPrivate(pModel);
if (NULL == spPrivate)
return E_INVALIDARG;
CLEAROUT(pbCanSee,
VARBOOL(GetIGC()->CanSee((ImodelIGC*)spPrivate->GetIGCVoid())));
return S_OK;
}
};
#endif