Parameter blocks are created from parameter block descriptors (ParamBlockDesc2). There are two methods for a plug-in to create a parameter block. The most common method is through a call to ClassDesc2::MakeAutoParamBlocks(). This will ask 3ds Max to automatically create all parameter blocks that have been registered with the class descriptor using the method, ClassDesc2::AddParamBlockDesc(). In order for this approach to work, parameter block descriptions needs to have the P_AUTO_CONSTRUCT flag set.
It is standard practice to call the ClassDesc2::MakeAutoParamBlocks() when the plug-in object gets created - usually this is done in the plug-in's constructor function. For example:
const BlockID paramBlockID = 0; static MyClassDesc2 classDesc; static ParamBlockDesc2 blockDesc(paramBlockID, "my_class", MY_ROLLOUT_TITLE_RES_STRING_ID, &classDesc, P_AUTO_CONSTRUCT | P_AUTO_UI | ..., ...); MyClass::MyClass() { classDesc.MakeAutoParamBlocks(this); }
The global function CreateParameterBlock2() from the file iparamb2.h can also be used to create a parameter block manually.