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 함수를 참조하십시오.
더 자세한 설명은 통신 관리자를 참조하십시오.
- 파라미터들을 전달하는 방법,
- 리턴 값들을 가져오는 방법,
- API로 힙(heap)과 API 환경을 관리하는 방법.
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 함수