ACAPI_ModulData_Store
프로젝트 데이터베이스에 커스텀 데이터 섹션을 저장합니다.
GSErrCode ACAPI_ModulData_Store ( const API_ModulData* info, const GS::UniString& modulName = "" );
파라미터
- info
- [in] 저장할 module 데이터입니다. 이것은 또한 플랫폼 및 버전 정보를 포함합니다.
- modulName
- [in] modul 데이터의 식별자 이름입니다. (선택사항)
리턴 값
NoError
- 함수가 성공적으로 완료되었습니다.
APIERR_BADPARS
- 전달된
dataHdl
파라미터가NULL
입니다. APIERR_BADPLATFORMSIGN
info
에 전달된platformSign
이 유효하지 않습니다.APIERR_NOMODULEDATA
- 제거하고자 하는 프로젝트 파일에 저장된 커스텀 데이터 섹션이 없습니다.
APIERR_MEMFULL
- 메모리 할당에 실패했습니다.
APIERR_GENERAL
- 일반 오류입니다.
다른 공통 API 오류들에 대해서는 오류 코드들의 리스트를 보십시오.
설명
이 함수는 프로젝트 데이터베이스에 커스텀 데이터 섹션을 내장시킬 때 사용합니다.
프로젝트 내 데이터 섹션은 호출자 애드온의 'MDID'와 전달된 modulName 식별자를 통해 유일하게 식별됩니다.
dataHdl 핸들은 GSRoot 모듈의 BM 메모리 관리자 함수를 이용하여 할당, 해제되어야 합니다. 데이터 내용은 핸들로 직접 복사할 수도 있고, 할당된 메모리 블록을 메모리 채널로 사용할 수도 있습니다. (IO::MemoryOChannel을 보십시오)
프로젝트로부터 저장된 modul 데이터를 제거하기 위해서는, 단지 info 파라미터에 NULL
포인터를 전달하기만 하면 됩니다.
ACAPI_ModulData_Delete 함수로 동일한 효과를 얻을 수 있습니다.
저장된 섹션을 가져오려면 ACAPI_ModulData_GetInfo와 ACAPI_ModulData_Get 함수들을 사용하십시오.
당신은 또한 ACAPI_ModulData_GetList 함수로 애드온에 의해 저장된 모든 modul들의 이름들의 리스트를 가져올 수 있습니다.
만약 예전 버전 프로젝트 파일에 다른 포맷의 moduldata를 저장할 필요가 있다면, 당신은 해당 프로젝트 버전의 포맷으로 필요한 데이터를 준비하는 APIModulDataSaveOldFormatHandlerProc 콜백 함수를 구현해야 합니다.
당신은 또한 병합 또는 팀워크 수신 동작으로 인해 충돌하는 modul들의 데이터를 병합할 필요가 있습니다. 충돌들을 적절하게 해결하기 위해 당신은 APIModulDataMergeHandlerProc 콜백 함수를 호출할 수 있습니다. 더 자세한 것은 ModulData 관리자 개관을 참조하십시오.
예제
GSErrCode MyDataClass::SaveIntoModulData (void) { GSErrCode err = NoError; API_ModulData info; BNZeroMemory (&info, sizeof (API_ModulData)); info.dataVersion = 1; info.platformSign = GS::Act_Platform_Sign; info.dataHdl = BMAllocateHandle (sizeof (myDataClassIntMember), 0, 0); if (info.dataHdl != NULL) { *(reinterpret_cast<Int32*> (*info.dataHdl)) = myDataClassIntMember; err = ACAPI_ModulData_Store (&info, "MyFirstDataBlock"); BMKillHandle (&info.dataHdl); } else { err = APIERR_MEMFULL; } return err; }
더 많은 힌트에 대해서는 ModulData Manager 예제 애드온 역시 연구해 보실 수 있습니다.
요구사항
- 버전: API 4.1 또는 이후
- 헤더: ACAPinc.h
참고사항
API_ModulData
ACAPI_ModulData_GetInfo
ACAPI_ModulData_Get
ACAPI_ModulData_GetList
ACAPI_ModulData_Delete
APIModulDataSaveOldFormatHandlerProc
APIModulDataMergeHandlerProc
ModulData 관리자
API 함수