Graphisoft®

API Development KitVersion: 18

APILockChangeHandlerProc

잠금가능한 객체들의 예약 변경사항들을 처리하기 위한 사용자 지원 콜백 프로시저입니다.

    typedef GSErrCode  APILockChangeHandlerProc (
        const API_Guid&     objectId,
        short               ownerId
    );

 

파라미터

objectId
[in] 예약되었거나 해제된 잠금가능한 객체 집합을 식별합니다. 잠금가능한 객체 집합들의 설명에 사용가능한 식별자들이 목록으로 나와 있습니다.
ownerId
[in] 예약을 획득한 locker 팀 멤버의 식별자입니다. 또는 잠금가능한 객체가 해제된 경우 0입니다.

 

리턴 값

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

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

 

설명

잠금가능한 객체들의 예약 변경사항들의 알림들을 받기 위해 ACAPI_Notify_CatchLockableReservationChange로 이 콜백 함수를 구현하고 세트해야 합니다.

APIEnv_ProjectSharingID 환경 함수로 멤버들의 정보를 가져올 수 있습니다. 또한 핸들러는 현재 팀 멤버에 의해 영향을 받는 예약 변경사항들도 가져올 수 있음을 참고하십시오. 현재 팀 멤버를 식별하려면 APIEnv_UserWorkspaceID를 사용하십시오.

예약 변경 핸들러에서 데이터베이스를 변경할 수 있는 함수들을 호출하지 않도록 하십시오.

 

예제

// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
GSErrCode __ACENV_CALL  LockableReservationChangeHandler (const API_Guid& objectId, short ownerId)
{
    GS::UniString reportString;

    if (objectId == APIGuidFromString ("4C036A66-C2FF-4c3b-9FF4-F45A810B5F84"))
        reportString.Append ("Fill Types");
    else 
        reportString.Append ("Layer Settings");

    if (ownerId > 0)
        reportString.Append (" got reserved");
    else 
        reportString.Append (" got released");

    ACAPI_WriteReport (reportString.ToCStr ().Get (), false);

    return NoError;
}


// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
void    CatchReservationChangesOfFillTypesAndLayerSettings (bool enableNotifications)
{
    if (enableNotifications) {
        GS::HashSet<API_Guid> filterLockablesInterestedOnly;
        filterLockablesInterestedOnly.Add (APIGuidFromString ("4C036A66-C2FF-4c3b-9FF4-F45A810B5F84"));
        filterLockablesInterestedOnly.Add (ACAPI_TeamworkControl_FindLockableObjectSet ("LayerSettingsDialog"));
        ACAPI_Notify_CatchLockableReservationChange (ElementReservationChangeHandler, &filterLockablesInterestedOnly);
    } else {
        ACAPI_Notify_CatchLockableReservationChange (NULL);
    }
}

 

요구사항

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

 

참고사항

ACAPI_Notify_CatchLockableReservationChange
팀워크 제어
알림 관리자
API 함수