Graphisoft®

API Development KitVersion: 18

ACAPI_Command_Call

다른 애드온의 커맨드를 호출합니다.

    GSErrCode  ACAPI_Command_Call (
        const API_ModulID*     mdid,
        GSType                 cmdID,
        Int32                  cmdVersion,
        GSHandle               params,
        GSPtr                  resultData,
        bool                   silentMode
    );

 

파라미터

mdid
[in] 대상 애드온의 식별자입니다. 'MDID' 리소스로 정의합니다.
cmdID
[in] 실행할 커맨드의 식별자입니다.
cmdVersion
[in] 필수 커맨드 버전입니다.
params
[in/out] 전달된 파라미터입니다. (선택사항) ACAPI_Goodies 함수의 애드온 간 통신 섹션을 보십시오.
resultData
[out] 커맨드에 의해 리턴된 결과들입니다. (선택사항)
silentMode
[in] 대상 애드온에게 사일런트 모드로 작동하도록 지시합니다. 옵션 다이얼로그, 오류 경고 등이 나오지 않습니다.

 

리턴 값

NoError
함수가 성공적으로 완료되었습니다.
APIERR_BADPARS
mdid 파라미터가 NULL입니다.
APIERR_MODULNOTINSTALLED
참조된 애드온이 설치되지 않았습니다.
APIERR_MODULCMDNOTSUPPORTED
참조된 커맨드가 대상 애드온에 의해 지원되지 않습니다.
APIERR_MODULCMDVERSNOTSUPPORTED
요청한 커맨드 버전이 너무 새로운 것입니다; 대상 애드온이 지원하지 않습니다.

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

 

설명

이 함수는 다른 애드온에 구현된 커맨드를 호출하는 데 사용합니다.

커맨드 가용성을 테스트하기 위해 ACAPI_Command_Test 함수를 참조하십시오.

더 자세한 설명은 통신 관리자를 참조하십시오.

Featuring API 10  ArchiCAD 10부터는 ArchiCAD의 또 다른 인스턴스에 로드된 다른 도면 상에서 ACAPI_Command_ExternalCall 함수와 함께 애드온 커맨드를 실행할 수 있습니다.

 

예제

다음 샘플은 DWXF/DWG 애드온에 대하여 현재 세트된 기본 번역기의 위치를 가져옵니다. (애드온이 현재 로드되어 있다고 가정함):

IO::Location configFile;                        // 리턴되는 번역기 위치
API_ModulID mdid = { 1198731108, 1322668197 };  // DXF/DWG 애드온의 MDID
GSHandle parHdl = NULL;                         // 커맨드 호출 파라미터들의 핸들

GSErrCode err = ACAPI_Goodies (APIAny_InitMDCLParameterListID, &parHdl, NULL);
if (err == NoError) {
    API_MDCLParameter par;                      // 출력 파일을 설명하는 파라미터
    BNZeroMemory (&par, sizeof (API_MDCLParameter));
    par.name = "Mode";
    par.type = MDCLPar_string;
    par.string_par = "Default";

    err = ACAPI_Goodies (APIAny_AddMDCLParameterID, parHdl, &par);
    if (err == NoError) {
        err = ACAPI_Command_Call (&mdid, 'GDCO', 1, parHdl, NULL, true);
        if (err == NoError) {
            Int32 nPars = 0;
            err = ACAPI_Goodies (APIAny_GetMDCLParameterNumID, parHdl, &nPars);
            if (err == NoError && nPars == 1) {
                BNZeroMemory (&par, sizeof (par));
                par.index = 1;
                err = ACAPI_Goodies (APIAny_GetMDCLParameterID, parHdl, &par);
                if (err == NoError && par.type == MDCLPar_string && par.string_par[0] != 0) {
                    configFile.Set (par.string_par);
                }
            }
        }
    }
    ACAPI_Goodies (APIAny_FreeMDCLParameterListID, &parHdl, NULL);
}

 

요구사항

버전: API 3.1 또는 이후
헤더: ACAPinc.h

 

참고사항

API_ModulID, 'MDID'
APIModulCommandProc
ACAPI_Command_Test
ACAPI_Command_ExternalCall
통신 관리자
API 함수