3ds Max Initialization and Finalization
The following are the initialization and finalization steps of 3ds Max that concern a plug-in's DLL.
Initialization Steps:
- Each non-MAXScript plug-in is loaded into memory and initialized through a called to
LibInitialize(). - The MAXScript engine is initialized
- All MAXScript plug-ins are loaded into memory and initialized through a called to
LibInitialize(). NOTIFY_SYSTEM_STARTUPis broadcast to all plug-ins.
Finalization Steps
NOTIFY_SYSTEM_SHUTDOWNis broadcast to all plug-ins.NOTIFY_SYSTEM_SHUTDOWN2is broadcast to all plug-ins.The global utility plug-in manager shuts down all global utility plug-in. This involves calling the global utility plug-in
DeleteThis()methods.MAXScript is uninitialized, according to the following steps:
- The macro-recorder is turned off.
- A notification is broadcast
NOTIFY_MXS_SHUTDOWN. - The COM bridge is uninitialized.
- The MAXScript interrupt checker thread is stopped. This is the thread that checks if the escape key is pressed during MAXScript execution.
- The MAXScript plug-ins (*.dlx files) are freed
The macro-recorder is turned off.
A notification is broadcast
NOTIFY_MXS_SHUTDOWN.The COM bridge is uninitialized.
The MAXScript interrupt checker thread is stopped. This is the thread that checks if the escape key is pressed during MAXScript execution.
The MAXScript plug-ins (*.dlx files) are freed
Each plug-in is shutdown through a call to
LibShutDown(). This is where a plug-in should free any remaining allocated memory, and perform the final uninitialization steps.
