7 #ifndef MI_BASE_INTERFACE_IMPLEMENT_H
8 #define MI_BASE_INTERFACE_IMPLEMENT_H
106 return I::get_interface_static(
this, interface_id);
121 return I::get_interface_static(
this, interface_id);
124 using I::get_interface;
129 return typename I::IID();
136 mutable Atom32 m_refcnt;
157 template <
class I1,
class I2>
224 const IInterface* iptr = I1::get_interface_static( static_cast<const I1*>(
this),
227 iptr = I2::get_interface_static( static_cast<const I2*>(
this), interface_id);
243 IInterface* iptr = I1::get_interface_static(static_cast<I1*>(
this),interface_id);
245 iptr = I2::get_interface_static( static_cast<I2*>(
this), interface_id);
249 using I1::get_interface;
254 return typename I1::IID();
261 mutable Atom32 m_refcnt;
315 return I::get_interface_static(
this, interface_id);
330 return I::get_interface_static(
this, interface_id);
333 using I::get_interface;
338 return typename I::IID();
351 #endif // MI_BASE_INTERFACE_IMPLEMENT_H