IParamBlock2PostLoadInfo Class Reference

#include <iparamb2.h>

Class Description

Informational class about ParamBlock2 objects loaded from file.

This allows a plugin to detect when an obsolete version of itself has been loaded, so the plugin can migrate obsolete parameters to the newer version. The information is available only under the following conditions, indicating that an obsolete file was loaded: 1) The current version of the ParamBlock2 uses the P_VERSION tag 2) The loaded version either did not use P_VERSION, or the version numbers don't match 3) The information is available only during a PostLoadCallback; it is deleted after load. To obtain a pointer to this class, query the plugin's ParamBlockDesc2 as follows: postLoadInfo = (IParamBlock2PostLoadInfo*)desc->GetInterface(IPARAMBLOCK2POSTLOADINFO_ID);

+ Inheritance diagram for IParamBlock2PostLoadInfo:

Public Member Functions

virtual Interface_ID GetID ()
 Returns the interface ID of this class, IPARAMBLOCK2POSTLOADINFO_ID. More...
 
virtual BaseInterfaceGetInterface (Interface_ID id)=0
 This method allows for future extension. More...
 
virtual ParamBlockDesc2GetParent ()=0
 Returns the current ParamBlockDesc2 which this information is associated with. More...
 
virtual DWORD GetVersion ()=0
 Returns the version number of the ParamBlock2 loaded from file. More...
 
virtual IntTabGetParamLoaded ()=0
 Returns the ID numbers of the parameters in the ParamBlock2 loaded from file. More...
 
virtual IntTabGetParamReorder ()=0
 Returns a mapping from old parameter indices to current parameter indices. More...
 
- Public Member Functions inherited from BaseInterface
virtual UtilExport ~BaseInterface ()
 Destructor. More...
 
virtual LifetimeType LifetimeControl ()
 
virtual bool RegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
virtual void UnRegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
virtual BaseInterfaceAcquireInterface ()
 
virtual void ReleaseInterface ()
 
virtual void DeleteInterface ()
 
virtual BaseInterfaceCloneInterface (void *remapDir=NULL)
 
- Public Member Functions inherited from InterfaceServer
virtual UtilExport ~InterfaceServer ()
 Destructor. More...
 

Additional Inherited Members

- Public Types inherited from BaseInterface
enum  LifetimeType { noRelease, immediateRelease, wantsRelease, serverControlled }
 
- 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...
 

Member Function Documentation

virtual Interface_ID GetID ( )
inlinevirtual

Returns the interface ID of this class, IPARAMBLOCK2POSTLOADINFO_ID.

Reimplemented from BaseInterface.

#define IPARAMBLOCK2POSTLOADINFO_ID
Definition: iparamb2.h:3969
virtual BaseInterface* GetInterface ( Interface_ID  id)
pure virtual

This method allows for future extension.

Returns itself if the parameter is IPARAMBLOCK2POSTLOADINFO_ID. Otherwise returns BaseInterface::GetInterface(id)

Parameters
[in]idThe ID of the interface

Reimplemented from BaseInterface.

virtual ParamBlockDesc2* GetParent ( )
pure virtual

Returns the current ParamBlockDesc2 which this information is associated with.

virtual DWORD GetVersion ( )
pure virtual

Returns the version number of the ParamBlock2 loaded from file.

This is either the P_VERSION number from the obsolete plugin, or if the plugin did not use P_VERSION it is equal to the value 3DSMAX_VERSION when the file was saved

virtual IntTab& GetParamLoaded ( )
pure virtual

Returns the ID numbers of the parameters in the ParamBlock2 loaded from file.

The numbers are in their original order used by the obsolete plugin.

virtual IntTab& GetParamReorder ( )
pure virtual

Returns a mapping from old parameter indices to current parameter indices.

Each entry is an index into the current ParamBlock2; the number of entries equals the current number of parameters. The parameters are listed in an order that matches the order from the obsolete plugin. This is used internally during load. The reference numbering of the current ParamBlock2 is temporarily reordered, allowing objects and controllers referenced by the ParamBlock2 to load correctly even when the parameter order changes between plugin versions.