IContainerObject13 Class Reference

#include <IContainerObject.h>

Class Description

IContainerObject13 Interface.

IContainerObject13 extends container object functionality. In particular it provides support for new access rules that inherited containers may follow.

Previously, containers would only allow for no access when inherited or access to edit in place so that a user can save over the original definition. Now in addition a container can grant access to only add new objects over the inherited container or get full freedom to access anything that was unlocked on the original source definition. For the latter case the user can specify additional locks over certain items, such as all materials, all modifiers, all transforms or all objects, to restrict what's accessible further.

+ Inheritance diagram for IContainerObject13:

Public Types

enum  AccessType { eNoAccess = 0x0, eOnlyEditInPlace, eOnlyAddNewObjects, eAnythingUnlocked }
 Access possibilities for when a container is inherited. More...
 
enum  LockedContents { eLockAllMaterials =0x1, eLockAllModifiers = 0x2, eLockAllTransforms =0x4, eLockAllObjects = 0x8 }
 Possibilities for items that may get locked when the AccessType is eAnythingUnlocked. More...
 
enum  ProxyType { PROXYTYPE_NONE, PROXYTYPE_ALTERNATE }
 
- Public Types inherited from BaseInterface
enum  LifetimeType { noRelease, immediateRelease, wantsRelease, serverControlled }
 

Public Member Functions

virtual bool SaveContainerAsVersion (bool newFileName, unsigned long saveAsVersion)=0
 Saves the content and rules as the new definition into a format compatible with the specified 3ds Max version If there is no definition file name, the user will be prompted for one. More...
 
virtual MCHARGetStatusString ()=0
 Returns a status string for the container. More...
 
virtual void SetStatusDisplay (bool status)=0
 Sets whether the container displays its status in the 3D viewports. More...
 
virtual bool GetStatusDisplay () const =0
 Returns whether the container displays its status in the 3D viewports. More...
 
virtual const MCHARGetEditingUser () const =0
 Returns the user name currently editing the definition for the container. More...
 
virtual bool IsUpdateNeeded () const =0
 Returns whether the container is out of date with its definition. More...
 
virtual bool IsInheritedClosed () const =0
 Returns whether the container is both inherited and its content is not currently local. More...
 
Access Type
virtual void SetAccessType (AccessType accessType)=0
 Set the type of access for this container when it gets inherited by another container. More...
 
virtual AccessType GetAccessType () const =0
 Returns the type of access that the container will provide when inherited. More...
 
virtual AccessType InheritedAccessType () const =0
 Returns the type of access that the container has based upon the access provided by its inherited source. More...
 
Locked Contents
virtual void SetLockedContents (LockedContents content, bool clear)=0
 Set what will be automatically locked when the access type is set to AccessType::eAnythingUnlocked. More...
 
virtual void ClearLockedContents ()=0
 Clear the locked content rules so that nothing is automatically locked. More...
 
virtual bool IsLockedContents (LockedContents content) const =0
 Get if this content will be automatically locked when the access type is set to AccessType::eAnythingUnlocked. More...
 
Container proxies

Proxies offer the possibility to represent container content by something other than their definition.

The following are the proxy types currently supported: PROXYTYPE_NONE: (default value) the container displays its definition PROXYTYPE_ALTERNATE: the container will display one of possibly several alternate definitions, one of which is current.

virtual ProxyType GetProxyType () const =0
 Returns the proxy type used by the container. More...
 
virtual void SetProxyType (ProxyType type)=0
 Sets the proxy type used by the container. More...
 
virtual int GetAlternateDefinitionCount () const =0
 Returns the number of alternate definitions for the container. More...
 
virtual MaxSDK::AssetManagement::AssetUser GetAlternateDefinition (int defIndex) const =0
 Returns the alternate definition for the container from an index. More...
 
virtual bool SetAlternateDefinition (int defIndex, const MaxSDK::AssetManagement::AssetUser &val)=0
 Sets an alternate definition for the container. More...
 
virtual bool AppendAlternateDefinition (const MaxSDK::AssetManagement::AssetUser &val)=0
 Appends one alternate definition to the container alternate definitions. More...
 
virtual bool RemoveAlternateDefinition (int defIndex)=0
 Removes one alternate definition from the container alternate definitions. More...
 
virtual int GetCurrentAlternateDefinitionIndex () const =0
 Returns the zero-based index of the current alternate definition of the container. More...
 
virtual void SetCurrentAlternateDefinitionIndex (int defIndex)=0
 Sets the current alternate definition of the container. More...
 
virtual MaxSDK::AssetManagement::AssetUser GetCurrentAlternateDefinition () const =0
 Returns the current alternate definition of the container. More...
 
- Public Member Functions inherited from IContainerObject
FPInterfaceDescGetDesc ()
 
virtual INodeGetContainerNode () const =0
 Returns the node containing this container object. More...
 
virtual void GetContentNodes (bool nestedContainerNodes, INodeTab &contentNodes) const =0
 Returns the content nodes for this container. More...
 
virtual bool IsNodeInContent (INode *in_node, bool nestedContainerNodes) const =0
 Checks for content membership. More...
 
virtual bool IsNodeInInheritedContent (INode *in_node, bool nestedContainerNodes) const =0
 Checks for inherited content membership. More...
 
virtual bool AddNodeToContent (INode *in_node)=0
 Adds a node and its children to the container. More...
 
virtual bool AddNodesToContent (INodeTab &in_nodeTab)=0
 Adds several nodes to the container. More...
 
virtual bool RemoveNodeFromContent (INode *in_node, bool detach=true)=0
 Removes a node from the container. More...
 
virtual MaxSDK::AssetManagement::AssetUser GetLocalDefinitionFileName () const =0
 Gets the local definition file for the container. More...
 
virtual bool SetLocalDefinitionFileName (const MaxSDK::AssetManagement::AssetUser &val)=0
 Sets the local definition file for the container. More...
 
virtual MaxSDK::AssetManagement::AssetUser GetSourceDefinitionFileName () const =0
 Gets the source definition file for the container. More...
 
virtual bool SetSourceDefinitionFileName (const MaxSDK::AssetManagement::AssetUser &val)=0
 Sets the source definition file for the container. More...
 
virtual bool SaveContainer (bool newFileName=false)=0
 Saves the current content and rules as the new definition. More...
 
virtual bool UpdateContainer ()=0
 Updates the content from its definition, preserving local modifications. More...
 
virtual bool UnloadContainer ()=0
 Saves the local definition and deletes the content from the scene. More...
 
virtual bool LoadContainer ()=0
 Reloads content from its definition and local modifications. Only available when unloaded. More...
 
virtual bool ReloadContainer ()=0
 Reloads content from its definition and local modifications. More...
 
virtual bool MergeSource ()=0
 Turns an inherited container into an unsaved local container, merging its content into the scene. More...
 
virtual bool MakeUnique ()=0
 Merges a container source, and recursively merges any nested container among its content. More...
 
virtual bool IsInherited () const =0
 Returns whether the container is inherited (or local) More...
 
virtual bool IsOpen () const =0
 Returns whether the container is open. More...
 
virtual bool SetOpen (bool isOpen)=0
 Opens or closes the container. More...
 
virtual bool IsContainerOpenableOrClosable () const =0
 Returns whether the open status of the container can be changed in its current state. More...
 
virtual bool IsUnloaded () const =0
 Returns whether the container is unloaded, that is, whether its content has been temporarily deleted. More...
 
virtual bool IsUnique () const =0
 Returns whether the container is unique, that is, whether it is local as well as any container it may contain. More...
 
virtual void AllowInPlaceEdit (bool allowEdit)=0
 Sets whether the container, when inherited, will allow editing in place. More...
 
virtual bool GetAllowInPlaceEdit () const =0
 Returns whether the container, when inherited, will allow editing in place. More...
 
virtual void SetEditInPlace (bool edit)=0
 Temporarily makes an inherited container that allows it to act like a local container. More...
 
virtual bool IsInPlaceEditing () const =0
 Returns whether the container is currently editing in place. More...
 
virtual bool CanEditInPlace () const =0
 For an imported container, returns whether it allows editing in place. More...
 
virtual void SetAutoUpdateClosed (bool setAutoUpdate)=0
 Sets whether the container will automatically update if it is closed and its definition is updated. More...
 
virtual bool AutoUpdateClosed () const =0
 Returns whether the container will automatically update if it is closed and its definition is updated. More...
 
virtual void SetLabelDisplay (bool display)=0
 Sets whether the container displays its name in the viewport. More...
 
virtual bool GetLabelDisplay () const =0
 Returns whether the container displays its name in the viewport. More...
 
virtual void UseContentBoundingBox (bool useContent)=0
 Sets whether the bounding box for the container object will be extended to encompass all of its content. More...
 
virtual bool IsUsingContentBoundingBox () const =0
 Returns whether the bounding box for the container object will be extended to encompass all of its content. More...
 
virtual void SetOverrideNodeProperties (bool setOverride)=0
 Sets whether the container overrides the object properties (wire color, hidden status etc) of its content. More...
 
virtual bool OverrideNodeProperties () const =0
 Returns whether the container overrides the object properties (wire color, hidden status etc) of its content. More...
 
virtual void SetSize (float size, TimeValue t=0)=0
 Sets the size of the container helper object. More...
 
virtual float GetSize (TimeValue t=0) const =0
 Returns the size of the container helper. More...
 
- Public Member Functions inherited from FPMixinInterface
 FPMixinInterface ()
 
virtual LifetimeType LifetimeControl ()
 
virtual CoreExport bool RegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
virtual void UnRegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
CoreExport ~FPMixinInterface ()
 
virtual BaseInterfaceGetInterface (Interface_ID id)
 
virtual FPInterfaceDescGetDescByID (Interface_ID id)
 
virtual Interface_ID GetID ()
 
- Public Member Functions inherited from FPInterface
virtual CoreExport FPStatus Invoke (FunctionID fid, TimeValue t=0, FPParams *params=NULL)
 
virtual FPStatus Invoke (FunctionID fid, FPParams *params)
 
virtual CoreExport FPStatus Invoke (FunctionID fid, TimeValue t, FPValue &result, FPParams *params=NULL)
 
virtual FPStatus Invoke (FunctionID fid, FPValue &result, FPParams *params=NULL)
 
virtual CoreExport FunctionID FindFn (const MCHAR *name)
 
virtual CoreExport BOOL IsEnabled (FunctionID actionID)
 
virtual CoreExport BOOL IsChecked (FunctionID actionID)
 
virtual CoreExport BOOL IsVisible (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsEnabled (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsChecked (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsVisible (FunctionID actionID)
 
virtual ActionTableGetActionTable ()
 
virtual void EnableActions (BOOL onOff)
 
- Public Member Functions inherited from BaseInterface
virtual UtilExport ~BaseInterface ()
 Destructor. More...
 
virtual BaseInterfaceAcquireInterface ()
 
virtual void ReleaseInterface ()
 
virtual void DeleteInterface ()
 
virtual BaseInterfaceCloneInterface (void *remapDir=NULL)
 
- Public Member Functions inherited from InterfaceServer
virtual UtilExport ~InterfaceServer ()
 Destructor. More...
 

Static Public Member Functions

static IContainerObject13GetInterface (Animatable *anim)
 If the Animatable supports the IContainerObject13 interface, returns a pointer to it. More...
 
- Static Public Member Functions inherited from IContainerObject
static IContainerObjectGetInterface (Animatable *anim)
 If the Animatable supports the IContainerObject interface, returns a pointer to it. More...
 
- Static Public Member Functions inherited from MaxHeapOperators
static UtilExport voidoperator new (size_t size)
 Standard new operator used to allocate objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e)
 Standard new operator used to allocate objects if there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new (size_t size, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate objects that takes the type of memory, filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new (size_t size, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate arrays of objects. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport void operator delete (void *ptr)
 Standard delete operator used to deallocate an object If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an object If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an object that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete (void *ptr, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, void *placement_ptr)
 Placement new operator. More...
 
static UtilExport void operator delete (void *ptr, void *placement_ptr)
 Placement delete operator. More...
 

Additional Inherited Members

- Static Public Attributes inherited from FPInterface
static CoreExport FPInterfaceDesc nullInterface
 
- Protected Member Functions inherited from FPMixinInterface
 FPMixinInterface (const FPMixinInterface &rhs)
 
FPMixinInterfaceoperator= (const FPMixinInterface &rhs)
 
- Protected Member Functions inherited from FPInterface
virtual FPStatus _dispatch_fn (FunctionID fid, TimeValue t, FPValue &result, FPParams *p)
 
- Protected Attributes inherited from FPMixinInterface
Tab< InterfaceNotifyCallback * > * interfaceNotifyCBs
 

Member Enumeration Documentation

enum AccessType

Access possibilities for when a container is inherited.

Enumerator
eNoAccess 

Nothing is accessible,acts like a scene xref.

eOnlyEditInPlace 

The only access allowed is the ability to edit in place.

eOnlyAddNewObjects 

All inherited content is locked but you can add new nodes.

eAnythingUnlocked 

Access to all of the unlocked tracks on the inherited container.

269  {
271  eNoAccess = 0x0,
Nothing is accessible,acts like a scene xref.
Definition: IContainerObject.h:271
The only access allowed is the ability to edit in place.
Definition: IContainerObject.h:273
All inherited content is locked but you can add new nodes.
Definition: IContainerObject.h:275
Access to all of the unlocked tracks on the inherited container.
Definition: IContainerObject.h:277

Possibilities for items that may get locked when the AccessType is eAnythingUnlocked.

Enumerator
eLockAllMaterials 

All materials are locked.

eLockAllModifiers 

All modifiers are locked.

eLockAllTransforms 

All transforms are locked.

eLockAllObjects 

All objects are locked.

280  {
282  eLockAllMaterials =0x1,
284  eLockAllModifiers = 0x2 ,
286  eLockAllTransforms =0x4,
288  eLockAllObjects= 0x8};
All transforms are locked.
Definition: IContainerObject.h:286
All materials are locked.
Definition: IContainerObject.h:282
All objects are locked.
Definition: IContainerObject.h:288
All modifiers are locked.
Definition: IContainerObject.h:284
enum ProxyType
Enumerator
PROXYTYPE_NONE 

No proxy is used (the container uses its definition)

PROXYTYPE_ALTERNATE 

An alternate definitions is used.

290  {
295  };
No proxy is used (the container uses its definition)
Definition: IContainerObject.h:292
An alternate definitions is used.
Definition: IContainerObject.h:294

Member Function Documentation

virtual void SetAccessType ( AccessType  accessType)
pure virtual

Set the type of access for this container when it gets inherited by another container.

This replaces IContainerObject::SetEditInPlace since different levels of access are now supported.

Parameters
[in]accessType-
See also
IContainerObject13::AccessType to see what levels of access you can specify.
virtual AccessType GetAccessType ( ) const
pure virtual

Returns the type of access that the container will provide when inherited.

Returns
Returns the enum AccessType flag specifying what type of access is allowed.
See also
IContainerObject13::AccessType
virtual AccessType InheritedAccessType ( ) const
pure virtual

Returns the type of access that the container has based upon the access provided by its inherited source.

If it has no inherited source it will default to return the same value as IContainerObject13::GetAccessType.

Returns
Returns the enum AccessType flag specifying what type of access is allowed.
See also
IContainerObject13::AccessType
virtual void SetLockedContents ( LockedContents  content,
bool  clear 
)
pure virtual

Set what will be automatically locked when the access type is set to AccessType::eAnythingUnlocked.

Parameters
[in]content- Type of content that will be automatically locked.
See also
IContainerObject13::LockedContents.
Parameters
[in]clear- If true then clear any other locked content enum that was set, and only set the specified one. If false, then keep the other specified locked content types also.
virtual void ClearLockedContents ( )
pure virtual

Clear the locked content rules so that nothing is automatically locked.

virtual bool IsLockedContents ( LockedContents  content) const
pure virtual

Get if this content will be automatically locked when the access type is set to AccessType::eAnythingUnlocked.

Parameters
[in]content- The content type that we are checking to see if it will be locked.
See also
IContainerObject13::LockedContents.
Returns
Returns true if that content type specified by the LockedContents enum will be locked, false otherwise.
virtual bool SaveContainerAsVersion ( bool  newFileName,
unsigned long  saveAsVersion 
)
pure virtual

Saves the content and rules as the new definition into a format compatible with the specified 3ds Max version If there is no definition file name, the user will be prompted for one.

Parameters
[in]newFileName- if true, prompt the user for a definition file name
[in]saveAsVersion- the version of 3ds Max in which the file is to be saved. Currently it supports saving to the current version of 3ds Max (MAX_RELEASE) and to 3ds Max 2010 (MAX_RELEASE_R12).
Returns
true if the operation was successful; false otherwise
virtual MCHAR* GetStatusString ( )
pure virtual

Returns a status string for the container.

virtual void SetStatusDisplay ( bool  status)
pure virtual

Sets whether the container displays its status in the 3D viewports.

virtual bool GetStatusDisplay ( ) const
pure virtual

Returns whether the container displays its status in the 3D viewports.

virtual const MCHAR* GetEditingUser ( ) const
pure virtual

Returns the user name currently editing the definition for the container.

virtual bool IsUpdateNeeded ( ) const
pure virtual

Returns whether the container is out of date with its definition.

virtual ProxyType GetProxyType ( ) const
pure virtual

Returns the proxy type used by the container.

See also
IContainerObject13::ProxyType
virtual void SetProxyType ( ProxyType  type)
pure virtual

Sets the proxy type used by the container.

See also
IContainerObject13::ProxyType
virtual int GetAlternateDefinitionCount ( ) const
pure virtual

Returns the number of alternate definitions for the container.

virtual MaxSDK::AssetManagement::AssetUser GetAlternateDefinition ( int  defIndex) const
pure virtual

Returns the alternate definition for the container from an index.

Parameters
[in]defIndex- zero-based index of the alternate definition file to retrieve
virtual bool SetAlternateDefinition ( int  defIndex,
const MaxSDK::AssetManagement::AssetUser val 
)
pure virtual

Sets an alternate definition for the container.

Parameters
[in]defIndex- zero-based index of the alternate definition file to set. The index must be less than the current number of alternate definitions
[in]val- an alternate definition file: either an empty asset or an asset of type kContainerAsset
Returns
- true if the alternate definition was successfully set.
virtual bool AppendAlternateDefinition ( const MaxSDK::AssetManagement::AssetUser val)
pure virtual

Appends one alternate definition to the container alternate definitions.

Parameters
[in]val- an alternate definition file: either an empty asset or an asset of type kContainerAsset
Returns
- true if the alternate definition was successfully appended.
virtual bool RemoveAlternateDefinition ( int  defIndex)
pure virtual

Removes one alternate definition from the container alternate definitions.

Parameters
[in]defIndex- zero-based index of the alternate definition file to remove.
Returns
- true if the alternate definition was successfully removed.
virtual int GetCurrentAlternateDefinitionIndex ( ) const
pure virtual

Returns the zero-based index of the current alternate definition of the container.

virtual void SetCurrentAlternateDefinitionIndex ( int  defIndex)
pure virtual

Sets the current alternate definition of the container.

Parameters
[in]defIndex- zero-based index of the alternate definition to set as current. The index must be less than the current number of alternate definitions
virtual MaxSDK::AssetManagement::AssetUser GetCurrentAlternateDefinition ( ) const
pure virtual

Returns the current alternate definition of the container.

virtual bool IsInheritedClosed ( ) const
pure virtual

Returns whether the container is both inherited and its content is not currently local.

static IContainerObject13* GetInterface ( Animatable anim)
inlinestatic

If the Animatable supports the IContainerObject13 interface, returns a pointer to it.

Parameters
[in]anim- Animatable to be tested for support of the IContainerObject13 interface.
Returns
- a pointer to an IContainerObject13 interface, or NULL.
405  {
406  return anim? static_cast<IContainerObject13*>(anim->GetInterface(IID_CONTAINER13)): NULL;}
#define NULL
Definition: autoptr.h:18
#define IID_CONTAINER13
Definition: IContainerObject.h:33
virtual CoreExport void * GetInterface(ULONG id)
IContainerObject13 Interface.
Definition: IContainerObject.h:263