Initialize
애드온의 메인 엔트리 포인트입니다.
GSErrCode Initialize ( void );
리턴 값
NoError
- 초기화 절차가 성공적으로 완료되었습니다.
설명
당신은 이 함수를 당신 코드의 메인 엔트리 포인트로 사용할 수 있습니다. DLL/코드 fragment가 메모리에 로드된 직후 라이브러리에 의해 호출되며, 통신 채널들이 올바르게 설정됩니다.
이것은 당신이 global 변수들과 동적 메모리 블록 등을 초기화할 수 있는 장소입니다.
이 함수에서는 CheckEnvironment 및 RegisterInterface 루틴에서 등록된 여러 서비스에 대한 콜백 함수들도 설치해야 합니다. 또한 당신은 여기에 알림 핸들러를 설치할 수 있습니다.
만약 당신의 애드온이 사용자 인터페이스를 갖고 있고, 컨텍스트에 민감한 도움말 엔진을 사용하고 싶다면(툴팁뿐만 아니라 도움말 앵커도 사용하려면),
이 곳은 애드온의 MDID로 자신의 도움말 엔진 경로를 등록할 수 있는 곳입니다.
(예제 코드 안의
DG::RegisterAdditionalHelpLocation
를 보십시오)
예제
typedef struct { double len; Int32 index; } NType; GSHandle **handle; Int32 nAlloc; Int32 nElem; // ----------------------------------------------------------------------------- // 애드온이 메모리에 로드된 후에 호출됨 // ----------------------------------------------------------------------------- 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); // // global 변수 할당 // nAlloc = 8; nElem = 0; handle = (NType **) BMhAll (nAlloc * sizeof (NType)); if (handle == NULL) return APIERR_MEMFULL; // // 메뉴 핸들러 프로시저 설치하기 // GSErrCode err = ACAPI_Install_MenuHandler (32500, MenuCommandHandler); if (err != NoError) DBPrintf ("Initialize():: ACAPI_Install_MenuHandler failed\n"); // // 변경 기본 알림 핸들러 프로시저 설치하기 // API_ToolBoxItem toolBoxItem; BNZeroMemory (&toolBoxItem, sizeof (API_ToolBoxItem)); toolBoxItem.typeID = API_ZombieElemID; // for all types err = ACAPI_Notify_CatchChangeDefaults (&toolBoxItem, APIDefaultsChangeHandler); if (err == NoError) { err = ACAPI_Notify_CatchProjectEvent (APINotify_Close, APIProjectEventHandler); } return err; } // Initialize
요구사항
- 버전: API 4.1 또는 이후
- 헤더: ACAPinc.h
참고사항
필수 함수, FreeData
CheckEnvironment, RegisterInterface
DGRegisterAdditionalHelpLocation
API 함수