APIModulDataMergeHandlerProc
모듈 데이터 병합 동작들을 처리하기 위한 사용자 지원 콜백 프로시저입니다.
typedef GSErrCode APIModulDataMergeHandlerProc ( API_MDSetCmd mode, const GS::UniString& modulName, const API_ModulData* originalInfo, const API_ModulData* toMergeInfo, API_ModulData* destInfo );
파라미터
- mode
- [in] 애드온이 호출되는 동작입니다.
- modulName
- [in] 모듈 데이터의 식별자 이름입니다. (예전 버전에서 저장된 모듈들의 경우, 이 파라미터는 항상 빈 문자열임)
- originalInfo
- [in] 병합되어야 할 원래 모듈 데이터입니다.
- toMergeInfo
- [in] 들어오는 모듈 데이터입니다.
- destInfo
- [out] 결과로 나오는 모듈 데이터입니다. 당신의 애드온은 병합의 결과를 반드시 여기에 넣어야 합니다.
리턴 값
NoError
- 함수가 성공적으로 완료되었습니다.
다른 공통 API 오류들에 대해서는 API 오류 문서를 보십시오.
설명
애드온에 의해 2개의 충돌하는 모듈들이 병합될 필요가 있을 때 이 함수가 호출됩니다. 핸들러 함수 포인터는 ACAPI_Install_ModulDataMergeHandler와 함께 전달되어야 합니다.
ACAPI_Register_ModulDataHandler를 호출하여
애드온의 이 기능 역시 등록할 필요가 있습니다.
알림 프로세스의 세부사항은 ModulData 관리자 섹션에서 설명합니다.
예제
콜백 등록 및 설치하기:
GSErrCode __ACENV_CALL RegisterInterface (void) { ACAPI_Register_ModulDataHandler (); return NoError; } GSErrCode __ACENV_CALL Initialize (void) { GSErrCode err = ACAPI_Install_ModulDataMergeHandler (APIModulDataMergeHandler); return err; }
핸들러 함수의 구현:
GSErrCode __ACENV_CALL APIModulDataMergeHandler (API_MDSetCmd mode, const GS::UniString& /*modulName*/, const API_ModulData* originalInfo, const API_ModulData* toMergeInfo, API_ModulData* destInfo) { if (toMergeInfo == NULL || destInfo == NULL) return APIERR_BADPARS; const API_ModulData* modulDataToKeep = (mode == APIMDSetMerge_TW || originalInfo == NULL) ? toMergeInfo : originalInfo; if (modulDataToKeep->dataHdl != NULL) { BNZeroMemory (destInfo, sizeof (API_ModulData)); destInfo->dataVersion = modulDataToKeep->dataVersion; destInfo->platformSign = modulDataToKeep->platformSign; BMHandleToHandle (modulDataToKeep->dataHdl, &destInfo->dataHdl); } else return APIERR_BADPARS; return NoError; }
더 많은 힌트들에 대해서는 ModulData 관리자 예제 애드온을 참조하십시오.
참고사항
- 버전: API 4.1 또는 이후
- 헤더: APIdefs_Callback.h
참고사항
API_MDSetCmd
API_ModulData
ACAPI_Install_ModulDataMergeHandler
ACAPI_Register_ModulDataHandler
ModulData 관리자
API 함수