A global utility plug-in should inherit from the GUP class, and may implement one ore more of the following functions.
- GUP::Start() - Perform initialization tasks, and indicate to 3ds Max whether it is okay to be deallocated.
- GUP::Stop() - Perform finalization tasks such as freeing resources.
- GUP::Control() - Perform custom processing.
- GUP::Save() - Called when 3ds Max is saving a scene file.
- GUP::Load() - Called when 3ds Max is loading a scene file.
- GUP::DeleteThis() - Called when 3ds Max requests the plug-in to be deleted. A typical implementation would be { delete this; } .
Once a GUP is started, 3ds Max will not make any other calls into the GUP until the GUP is unloaded and deallocated. Other
plug-ins who access a pointer to the GUP may choose to call GUP::Control().