ACAPI_ModulData_Get
프로젝트 데이터베이스에 저장된 데이터 섹션을 리턴합니다.
GSErrCode ACAPI_ModulData_Get (
API_ModulData* info,
const GS::UniString& modulName = ""
);
파라미터
- info
- [out] 리턴시 프로젝트 파일에 저장된 커스텀 데이터를 포함하게 됩니다.
- modulName

- [in] modul 데이터의 식별자 이름입니다. (선택사항)
리턴 값
NoError- 함수가 성공적으로 완료되었습니다.
APIERR_BADPARSinfo파라미터가NULL입니다.APIERR_NOMODULEDATA- 애드온의 유일 modul ID와 modulName 파라미터에 의해 식별되는 프로젝트 파일에 저장된 커스텀 데이터 섹션이 없습니다.
다른 공통 API 오류들에 대해서는 오류 코드들의 리스트를 보십시오.
설명
이 함수는 주어진 modulName로 식별되는 프로젝트 데이터베이스에 내장된 커스텀 데이터 섹션의 데이터 바이트들을 가져오는 데 사용합니다.
- 항상 API_ModulData structure에 리턴된
platformSign을 확인하십시오. 올바른 데이터 포맷을 보장하기 위해 필수 바이트 교환(swapping) 메서드들을 호출하십시오. 바이트 교환(swapping) 메서드들에 대한 더 자세한 내용은 GSRoot 문서를 참조하십시오. - 항상 API_ModulData structure에 리턴된
dataVersion을 확인하십시오.. 예전 데이터 포맷들은 역 호환성을 유지하기 위해 반드시 처리되어야 합니다. (APIModulDataSaveOldFormatHandlerProc도 보십시오)
ArchiCAD는 info의 dataHdl 필드에 대상 버퍼를 할당합니다; 호출자 애드온은 BMKillHandle로 그것을 폐기할 책임이 있습니다.
지정된 식별자를 가진 moduldata가 현재 프로젝트 안에 저장되어 있는지 여부를 확인하기 위해 ACAPI_ModulData_GetInfo 함수를 사용하는 것을 권장합니다. 이것은 데이터 자체를 가져오지는 않지만 버전 및 플랫폼 정보를 가져옵니다.
예제
GSErrCode MyDataClass::LoadFromModulData (void)
{
API_ModulData info;
GSErrCode err;
BNZeroMemory (&info, sizeof (API_ModulData));
err = ACAPI_ModulData_GetInfo (&info, "MyFirstDataBlock");
if (err != NoError) {
if (err == APIERR_NOMODULEDATA)
err = NoError;
return err;
}
err = ACAPI_ModulData_Get (&info, "MyFirstDataBlock");
if (err == NoError && info.dataVersion == 1) {
myDataClassIntMember = *(reinterpret_cast<Int32*> (*info.dataHdl));
if (info.platformSign != GS::Act_Platform_Sign) { // 데이터 바이트들을 교환(swap)
IVLong ((GS::PlatformSign) info.platformSign, &myDataClassIntMember);
}
}
BMKillHandle (&info.dataHdl);
return err;
}
요구사항
- 버전: API 4.1 또는 이후
- 헤더: ACAPinc.h
참고사항
API_ModulData
ACAPI_ModulData_GetInfo
ACAPI_ModulData_GetList
ACAPI_ModulData_Store
ModulData 관리자
API 함수