The following example application implements functions that are called when the application is loaded and unloaded. Its initialization function adds two new commands to AutoCAD: CREATE and ITERATE.
It also initializes the new class AsdkMyClass and adds it to the ObjectARX hierarchy with the acrxBuildClassHierarchy() function. (AsdkMyClass is described in Example of a Custom Object Class.)
// The initialization function called from the acrxEntryPoint() // function during the kInitAppMsg case is used to add commands // to the command stack and to add classes to the ACRX class // hierarchy. // void initApp() { acedRegCmds->addCommand("ASDK_DICTIONARY_COMMANDS", "ASDK_CREATE", "CREATE", ACRX_CMD_MODAL, createDictionary); acedRegCmds->addCommand("ASDK_DICTIONARY_COMMANDS", "ASDK_ITERATE", "ITERATE", ACRX_CMD_MODAL, iterateDictionary); AsdkMyClass::rxInit(); acrxBuildClassHierarchy(); } // The cleanup function called from the acrxEntryPoint() // function during the kUnloadAppMsg case removes this application's // command set from the command stack and removes this application's // custom classes from the ACRX runtime class hierarchy. // void unloadApp() { acedRegCmds->removeGroup("ASDK_DICTIONARY_COMMANDS"); // Remove the AsdkMyClass class from the ACRX runtime // class hierarchy. If this is done while the database is // still active, it should cause all objects of class // AsdkMyClass to be turned into proxies. // deleteAcRxClass(AsdkMyClass::desc()); }