Graphisoft®

API Development KitVersion: 18

APIIOCommandProc

I/O 동작들을 처리하기 위한 사용자 지원 콜백 프로시저입니다.

    typedef GSErrCode  APIIOCommandProc (
        const API_IOParams*     ioParams
    );

 

파라미터

ioParams
[in] 이 structure는 열거나 저장할 파일을 식별하는 다양한 파라미터들을 포함합니다.

 

리턴 값

NoError
함수가 성공적으로 완료되었습니다.

다른 공통 API 오류들에 대해서는 API Errors 문서를 보십시오.

 

설명

애드온이 ACAPI_Install_FileTypeHandler로 그것을 설치할 때 이 함수가 호출될 것입니다.

5.1  ArchiCAD 8.1부터 병합 파일 동작을 하는 동안 요소들을 생성하기 위해 undoable session을 열어야 합니다.
ACAPI_OpenUndoableSession에 빈 문자열 파라미터를 전달하는 경우, ArchiCAD는 그것을 기본 "Paste" undo 문자열로 대체하게 됩니다.

6.1  ArchiCAD 9부터 병합 및 열기 동작들은 드래그 & 드롭으로도 시작될 수 있습니다:

 

예제

// -----------------------------------------------------------------------------
// I/O 커맨드 콜백 함수
// -----------------------------------------------------------------------------
GSErrCode __ACENV_CALL APIIOCommand (const API_IOParams *ioParams)

{
    IO::Path path;
    ioParams->fileLoc.ToPath (&path);

    switch (ioParams->method) {
        case IO_OPEN:
            DBPrintf ("Opening file \"%s\"\n", (const char *) path);
            //  ... ACAPI_Element_Create ...
            break;

        case IO_MERGE:
            DBPrintf ("Merging file \"%s\"\n", (const char *) path);
            if (fromDragDrop)
                ACAPI_OpenUndoableSession ("Drop file");
            else
                ACAPI_OpenUndoableSession ("Merge file");

            //  element.pos.x += ioParams->dropOffset.x;
            //  element.pos.y += ioParams->dropOffset.y;
            //  ... ACAPI_Element_Create ...

            ACAPI_CloseUndoableSession ();
            break;

        case IO_SAVEAS:
            DBPrintf ("Saving file \"%s\"\n", (const char *) path);
            //  ... ACAPI_Element_Get ... ACAPI_Element_ShapePrims ...
            break;
    }

    return NoError;
}   // APIIOCommand

 

요구사항

버전: API 4.1 또는 이후
헤더: APIdefs_Callback.h

 

참고사항

API_IOParams
ACAPI_Install_FileTypeHandler
API 함수