Macro group for simple installation of an object succession
#include <mso/Derive.h>
Macro
* _msoDeriveFrom( basetype )
Defines the base member. The name of the base member is, e.g.,
_baseMxxObject for the MxxObject format. This is used in the
structure.
* _msoBaseOffset( basetype, drvtype )
Returns the offset of the base member in u8 units
* _msoDownCast( drvtype, basetype, ptr )
Casts the base type pointer "ptr" to the pointer for the derivative
type "drvtype"
* _msoUpCast( basetype, ptr )
Casts the derivative type pointer "ptr" to the base type pointer
Usage Example
* Derive MxxResource from MxxObject as follows.
typedef struct _MxxResource
{
_msoDeriveFrom( MxxObject );
....
} MxxResource;
* Obtain the pointer for the derivative type MxxResource from the base
type MxxObject as follows.
res_ptr = _msoDownCast( MxxResource, MxxObject, obj_ptr );
* Conversely, obtain the pointer for the base type MxxObject from the
derivative type MxxResource as follows.
obj_ptr = _msoUpCast( MxxObject, res_ptr );