void unloadApp() { acedRegCmds->removeGroup( "ASDK_DIVISOR" ); ASDK_REMOVE_DIVISOR_OSNAP(3,thirdMode); ASDK_REMOVE_DIVISOR_OSNAP(4,fourthMode); ASDK_REMOVE_DIVISOR_OSNAP(5,fifthMode); deleteAcRxClass( AsdkDivOsnapInfo<3>::desc() ); deleteAcRxClass( AsdkDivOsnapInfo<4>::desc() ); deleteAcRxClass( AsdkDivOsnapInfo<5>::desc() ); }
static void unloadApp(void) { // unregister your own entities // deleteAcRxClass(AsdkMkrEntity::desc()); deleteAcRxClass(AsdkMkrObject::desc()); // unregister your autocad commands // acedRegCmds->removeGroup(/*NOXLATE*/"ASDK_MKR"); erase_EditorReactor(); }
//----------------------------------------------------------------------------- //----- This is the entry point that makes a simple DLL an ARX. //----- This entry point must be exported either by means of a def file //----- or by the means of _declspec extern "C" AcRx::AppRetCode acrxEntryPoint (AcRx::AppMsgCode msg, void *pkt) { switch (msg) { case AcRx::kInitAppMsg: //----- An ARX application is locked to memory by default. //----- You must make the following function call to unlock it. acrxDynamicLinker->unlockApplication (pkt) ; //----- Register as MDI aware acrxDynamicLinker->registerAppMDIAware(pkt); //----- Register the OarxEmployee class into the AutoCAD runtime class hierachy OarxEmployee::rxInit () ; //----- Build-up the AutoCAD runtime class hierachy with the new class entry acrxBuildClassHierarchy () ; //----- Do not forget our ServiceName acrxDynamicLinker->registerService (EmployeeServiceName, new OarxEmployeeService) ; break ; case AcRx::kUnloadAppMsg: //----- Unregister the OarxEmployee class from the AutoCAD runtime //----- class hierachy. So AutoCAD will turn our custom entity into //----- a proxy entity when we are not there. deleteAcRxClass (OarxEmployee::desc ()) ; //----- Do not forget to remove the dictionary entry delete acrxServiceDictionary->remove (EmployeeServiceName) ; break ; } return (AcRx::kRetOK) ; }
extern "C" AcRx::AppRetCode acrxEntryPoint( AcRx::AppMsgCode msg, void *pkt ) { switch(msg) { case AcRx::kInitAppMsg: //intialize AsdkAmodeler // acrxLoadModule(_T("aecmodeler50.dbx"),0); // Try to allow unloading // acrxUnlockApplication(pkt); //register as being MDI aware // acrxRegisterAppMDIAware(pkt); //initialize our custom class AsdkBody::rxInit(); acrxBuildClassHierarchy(); break; case AcRx::kUnloadAppMsg: deleteAcRxClass(AsdkBody::desc()); //unload AsdkAModeler if we have been the //only one using it. (RX does reference counting) acrxUnloadModule(_T("aecmodeler50.dbx")); break; } return AcRx::kRetOK; }
// The clean up function is called from acrxEntryPoint() during the // kUnloadAppMsg case. This function removes this application's // command set from the command stack and the // AsdkOwnerDemo class from the ARX runtime class tree. // void unloadApp() { acedRegCmds->removeGroup("ASDK_OWNERSHIP_COMMANDS"); // Remove the AsdkOwnerDemo class from the ACRX runtime // class hierarchy. If this is done while the database is // still active, it should cause all objects of class // AsdkOwnerDemo to be turned into proxies. // deleteAcRxClass(AsdkOwnerDemo::desc()); }
void unloadApp() { acedRegCmds->removeGroup( _T("ASDK_THIRD") ); acdbCustomOsnapManager()->removeCustomOsnapMode( &thirdMode ); AcDbEntity::desc()->delX( AsdkThirdOsnapInfo::desc() ); AcDbCurve::desc()->delX( AsdkThirdOsnapInfo::desc() ); AcDbPolyline::desc()->delX( AsdkThirdOsnapInfo::desc() ); deleteAcRxClass( AsdkThirdOsnapInfo::desc() ); }
extern "C" AcRx::AppRetCode acrxEntryPoint(AcRx::AppMsgCode msg, void* appId) { switch(msg) { case AcRx::kInitAppMsg: acrxDynamicLinker->unlockApplication(appId); acrxDynamicLinker->registerAppMDIAware(appId); initAsdkTextStyleSamp(); break; case AcRx::kUnloadAppMsg: acedRegCmds->removeGroup("ASDK_TEXTSTYLE_SAMP"); deleteAcRxClass(AsdkTextStyleSamp::desc()); } return AcRx::kRetOK; }
void unloadApp() { delete acrxServiceDictionary->remove("AsdkTemperature"); acedRegCmds->removeGroup("ASDK_TEMPERATURE_APP"); // Remove protocol extension objects from the AcRxClass // object tree. This *must* be done before removing the // AsdkEntTemperature class from the ACRX runtime class // hierarchy so that the AsdkEntTemperature::desc() // still exists. // AcDbEntity::desc()->delX(AsdkEntTemperature::desc()); delete pDefaultTemp; AcDbRegion::desc()->delX(AsdkEntTemperature::desc()); delete pRegionTemp; AcDbCircle::desc()->delX(AsdkEntTemperature::desc()); delete pCircleTemp; // Remove the AsdkEntTemperature class from the ARX // runtime class hierarchy. // deleteAcRxClass(AsdkEntTemperature::desc()); }
void ArxDbgApp::unRegisterClasses() { deleteAcRxClass(ArxDbgPersistentEntReactor::desc()); deleteAcRxClass(ArxDbgPersistentObjReactor::desc()); deleteAcRxClass(ArxDbgTransientEntReactor::desc()); deleteAcRxClass(ArxDbgTransientObjReactor::desc()); deleteAcRxClass(ArxDbgAppEditorReactor::desc()); deleteAcRxClass(ArxDbgDwgFiler::desc()); deleteAcRxClass(ArxDbgReferenceFiler::desc()); deleteAcRxClass(ArxDbgGiWorldDraw::desc()); deleteAcRxClass(ArxDbgGiWorldGeometry::desc()); deleteAcRxClass(ArxDbgGiSubEntityTraits::desc()); deleteAcRxClass(ArxDbgGiContext::desc()); deleteAcRxClass(ArxDbgDbAdeskLogo::desc()); deleteAcRxClass(ArxDbgDbAdeskLogoStyle::desc()); deleteAcRxClass(ArxDbgDbDictRecord::desc()); deleteAcRxClass(ArxDbgDbEntity::desc()); deleteAcRxClass(ArxDbgDatabaseReactor::desc()); deleteAcRxClass(ArxDbgDLinkerReactor::desc()); deleteAcRxClass(ArxDbgDocumentReactor::desc()); deleteAcRxClass(ArxDbgEditorReactor::desc()); deleteAcRxClass(ArxDbgEventReactor::desc()); deleteAcRxClass(ArxDbgLayoutManagerReactor::desc()); deleteAcRxClass(ArxDbgLongTransactionReactor::desc()); deleteAcRxClass(ArxDbgTransactionReactor::desc()); }