APIEnv_SetToolBoxModeID
실제 툴박스 모드를 세트합니다.
GSErrCode ACAPI_Environment ( APIEnv_SetToolBoxModeID, API_ToolBoxItem* toolBoxItem );
파라미터
- toolBoxItem
- [in] 세트할 툴박스 모드입니다.
리턴 값
NoError
- 함수가 성공적으로 완료되었습니다.
APIERR_BADPARS
- 라이브러리 파트 타입의 variationID가 툴박스 모드 타입과 일치하지 않습니다.
APIERR_BADID
toolBoxItem->typeID
가 유효하지 않은 데이터를 포함하고 있습니다.
다른 공통 API 오류들에 대해서는 API 오류 문서를 보십시오.
설명
이 함수는 현재 툴박스 모드를 변경하는 데 사용합니다.
이 모드는 요소 타입 ID에 의해 지정됩니다.
더 많은 툴박스 모드(ID_Wind
, ID_Door
, ID_Symb
, ID_Light
)들을 가질 수 있는 타입들에 대해서, 도구의 variationID 역시 제공되어야 합니다.
API_ZombieElemID
또는 유효하지 않은 요소 타입 ID 사양에 대해서는 화살표 모드가 세트될 것입니다.
이 함수는 툴박스를 즉시 전환하지 않지만 애플리케이션 큐에 이벤트를 게시한다는 것을 참고하십시오. 이 커맨드는 애플리케이션 이벤트들이 처리되었을 때에만 실행될 것입니다.
활성 툴박스 모드를 가져오려면 APIEnv_GetToolBoxModeID 함수를 사용하십시오.
예제
API_Guid guid; API_Element element; API_ToolBoxItem tboxInfo; GSErrCode err; BNZeroMemory (&tboxInfo, sizeof (API_ToolBoxItem)); tboxInfo.typeID = API_ZombieElemID; tboxInfo.variationID = APIVarId_Generic; if (ClickAnElem ("Click an element to set toolbox mode", API_ZombieElemID, NULL, &tboxInfo.typeID, &guid, NULL)) { if (tboxInfo.typeID == API_ObjectID || tboxInfo.typeID == API_LampID || tboxInfo.typeID == API_WindowID || tboxInfo.typeID == API_DoorID) { BNZeroMemory (&element, sizeof (API_Element)); element.header.typeID = tboxInfo.typeID; element.header.guid = guid; err = ACAPI_Element_Get (&element); if (err == NoError) tboxInfo.variationID = element.header.variationID; } } err = ACAPI_Environment (APIEnv_SetToolBoxModeID, &tboxInfo, NULL, NULL); if (err == NoError) { if (tboxInfo.typeID == API_ZombieElemID) WriteReport ("Current toolbox mode: Arrow"); else { if (tboxInfo.variationID == APIVarId_Generic) { WriteReport ("Current toolbox mode: %s", ElemID_To_Name (tboxInfo.typeID)); } else { char *p = (char *) &tboxInfo.variationID; WriteReport ("Current toolbox mode: %s External \"%c%c%c%c\"", ElemID_To_Name (tboxInfo.typeID), p[0], p[1], p[2], p[3]); } } }
요구사항
- 버전: API 2.1 또는 이후
- 헤더: APIdefs_Environment.h
참고사항
API_ToolBoxItem,
APIEnv_GetToolBoxModeID,
ACAPI_Environment, API 함수