The main entry point of the add-on.
GSErrCode Initialize ( void );
Return Values
NoError
- The initialization procedure has completed with success.
Remarks
You can use this function as the main entry point of your code. It is called by the library right after the DLL/code fragment has been loaded into the memory, and the communication channels are set up correctly.
This is the place where you can initialize your global variables, dynamic memory blocks etc.
In this function you will also have to install the callback functions for the different services you registered in the CheckEnvironment and RegisterInterface routines. Also you can install the notification handlers here.
If your add-on has user interface, and you want to use a context sensitive help engine (you want to use not just tooltips, but help anchors too), then this is the place where you can register your own help engine’s path with your add-on’s MDID (see
DG::RegisterAdditionalHelpLocation
in the example code).
Example
typedef struct { double len; Int32 index; } NType; GSHandle **handle; Int32 nAlloc; Int32 nElem; // ----------------------------------------------------------------------------- // Called after the Add-On has been loaded into memory // ----------------------------------------------------------------------------- GSErrCode __ACDLL_CALL Initialize (void) { // If the add-on has user interface and wants to use context sensitive help engine IO::Location helpLoc; ACAPI_GetOwnLocation (&helpLoc); DG::RegisterAdditionalHelpLocation (MDID_DeveloperID, MDID_LocalID, helpLoc); // // Allocate globals // nAlloc = 8; nElem = 0; handle = (NType **) BMhAll (nAlloc * sizeof (NType)); if (handle == nullptr) return APIERR_MEMFULL; // // Install the menu handler procedure // GSErrCode err = ACAPI_Install_MenuHandler (32500, MenuCommandHandler); if (err != NoError) DBPrintf ("Initialize():: ACAPI_Install_MenuHandler failed\n"); // // Install the change defaults notification handler procedure // API_ToolBoxItem toolBoxItem; BNZeroMemory (&toolBoxItem, sizeof (API_ToolBoxItem)); toolBoxItem.type = API_ZombieElemID; // for all types err = ACAPI_Notify_CatchChangeDefaults (&toolBoxItem, APIDefaultsChangeHandler); if (err == NoError) { err = ACAPI_Notify_CatchProjectEvent (APINotify_Close, APIProjectEventHandler); } return err; } // Initialize
Requirements
- Version: API 4.1 or later
- Header: ACAPinc.h
See Also
Required Functions, FreeData
CheckEnvironment, RegisterInterface
DGRegisterAdditionalHelpLocation
API Functions