Public Member Functions

IObject Class Reference

This reference page is linked to from the following overview topics: Publishing Mixin Interface on Arbitrary Classes, Passing FPInterfaces as Parameters and Results.


Search for all occurrences

Detailed Description

See also:
Class BaseInterfaceServer, Class FPInterface, Class FPInterfaceDesc, Function Publishing, Class InterfaceServer,

Description:
This class is available in release 4.0 and later only.

This is the base class used to publish functions from those objects not derived from Animatable. A developer inherits from this class and implements the methods of this class to provide information about the interfaces published by the class.

There is a corresponding ParamType2 type code, TYPE_IOBJECT, that allows instances of these classes to be passed and returned in FPInterface methods. This provides a simple form of user-defined type, in the sense that these instance collections are passed as interfaces rather than pointers. MAXScript has wrapper value classes for IObjects and so this mechanism provides a light-weight alternative to the MAXScript SDK facilities for adding new wrapper value classes to the scripter.

MAXScript also calls the AcquireInterface() and ReleaseInterface() methods on IObjects as it creates and collects these wrappers, so that IObject objects can keep track of MAXScript's extant references to them.


#include <ifnpub.h>

Inheritance diagram for IObject:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual MCHAR *  GetIObjectName ()
virtual void  AcquireIObject ()
virtual void  ReleaseIObject ()
virtual void  DeleteIObject ()

Member Function Documentation

virtual MCHAR* GetIObjectName ( ) [inline, virtual]
Remarks:
Returns the object/class name.
Default Implementation:
{ return _M(""); }

Reimplemented in ITreeView, and AssetUser.

{ return _M(""); }                          
virtual void AcquireIObject ( ) [inline, virtual]
Remarks:
This method is called when MAXScript makes a reference to this object. This is part of the IObject reference management and can be implemented by dynamically allocated IObjects for ref-count based lifetime control.
Default Implementation:
{ }

Reimplemented in AssetUser.

{ }
virtual void ReleaseIObject ( ) [inline, virtual]
Remarks:
This method is called when MAXScript deletes a reference to this object. This is part of the IObject reference management and can be implemented by dynamically allocated IObjects for ref-count based lifetime control.
Default Implementation:
{ }

Reimplemented in AssetUser.

{ }
virtual void DeleteIObject ( ) [inline, virtual]
Remarks:
This method is the virtual destructor for the IObject.
Default Implementation:
{ }

Reimplemented in AssetUser.

{ }

IObject IObject IObject IObject IObject IObject IObject IObject IObject IObject
IObject IObject IObject IObject IObject IObject IObject IObject IObject IObject