Graphisoft®

API Development KitVersion: 18

ACAPI_ModulData_Get

프로젝트 데이터베이스에 저장된 데이터 섹션을 리턴합니다.

    GSErrCode  ACAPI_ModulData_Get (
        API_ModulData*           info,
        const GS::UniString&     modulName = ""
    );

 

파라미터

info
[out] 리턴시 프로젝트 파일에 저장된 커스텀 데이터를 포함하게 됩니다.
modulName API 13 feature
[in] modul 데이터의 식별자 이름입니다. (선택사항)

 

리턴 값

NoError
함수가 성공적으로 완료되었습니다.
APIERR_BADPARS
info 파라미터가 NULL입니다.
APIERR_NOMODULEDATA
애드온의 유일 modul ID와 modulName 파라미터에 의해 식별되는 프로젝트 파일에 저장된 커스텀 데이터 섹션이 없습니다.

다른 공통 API 오류들에 대해서는 오류 코드들의 리스트를 보십시오.

 

설명

이 함수는 주어진 modulName로 식별되는 프로젝트 데이터베이스에 내장된 커스텀 데이터 섹션의 데이터 바이트들을 가져오는 데 사용합니다.

ArchiCAD는 infodataHdl 필드에 대상 버퍼를 할당합니다; 호출자 애드온은 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 함수