8 #ifndef MI_BASE_INTERFACE_IMPLEMENT_H
9 #define MI_BASE_INTERFACE_IMPLEMENT_H
107 return I::get_interface_static(
this, interface_id);
122 return I::get_interface_static(
this, interface_id);
125 using I::get_interface;
130 return typename I::IID();
137 mutable Atom32 m_refcnt;
158 template <
class I1,
class I2>
225 const IInterface* iptr = I1::get_interface_static( static_cast<const I1*>(
this),
228 iptr = I2::get_interface_static( static_cast<const I2*>(
this), interface_id);
244 IInterface* iptr = I1::get_interface_static(static_cast<I1*>(
this),interface_id);
246 iptr = I2::get_interface_static( static_cast<I2*>(
this), interface_id);
250 using I1::get_interface;
255 return typename I1::IID();
262 mutable Atom32 m_refcnt;
316 return I::get_interface_static(
this, interface_id);
331 return I::get_interface_static(
this, interface_id);
334 using I::get_interface;
339 return typename I::IID();
352 #endif // MI_BASE_INTERFACE_IMPLEMENT_H