namespace cppu \
{ \
struct ClassData##N : public ClassDataBase \
{ \
Type_Offset arType2Offset[ N ]; \
ClassData##N( sal_Int32 nInClassCode )
SAL_THROW(()) \
: ClassDataBase( nInClassCode ) \
{} \
}; \
template< __CLASS_IFC##N > \
: public ::com::sun::star::lang::XTypeProvider \
, __PUBLIC_IFC##N \
{ \
CPPUHELPER_DETAIL_IMPLHELPER_PROTECTED: \
~ImplHelperBase##N() throw () {} \
protected: \
ClassData & SAL_CALL getClassData( ClassDataBase & s_aCD )
SAL_THROW(()) \
{ \
ClassData & rCD = * static_cast< ClassData * >( &s_aCD ); \
if (! rCD.bOffsetsInit) \
{ \
if (! rCD.bOffsetsInit) \
{ \
char * pBase = (char *)this;