안전한 배열 사용에 대한 모범 사례
Microsoft UI Automation API의 많은 인터페이스 메서드는 safe array라는 인수를 SAFEARRAY 데이터 형식을 사용합니다. 이 항목에서는 UI 자동화 애플리케이션에서 안전한 배열을 사용하는 모범 사례를 설명합니다.
클라이언트
UI 자동화 클라이언트 API 메서드와 함께 사용되는 모든 안전한 배열은 0부터 시작하는 1차원 배열입니다. UI 자동화 클라이언트 메서드에 대한 안전한 배열을 만들려면 SafeArrayCreateVector 함수를 사용하고 안전한 배열에서 읽고 쓰려면 SafeArrayGetElement 사용하고 SafeArrayPutElement함수를. 안전 배열 사용을 마치면 안전 배열을 만들거나 UI 자동화 클라이언트 메서드에서 수신했는지 여부에 관계없이 SafeArrayDestroy 함수를 사용하여 항상 삭제합니다.
GetCurrentPropertyValue같은 속성 검색 메서드를 비롯한 여러 UI 자동화 메서드는 POINT 또는 UiaRect구조체를 포함할 수 있는VARIANT검색합니다. POINT는 안전한 double 배열(VT_R8)로 된 VARIANT로 압축되며, 인덱스 0에 x 멤버가, 인덱스 1에 y 멤버가 있습니다. 마찬가지로, UiaRect는 왼쪽, 위쪽, 너비, 높이 멤버가 각각 인덱스 0에서 3까지인 안전한 double 배열로 VARIANT에 압축됩니다. UiaRect 구조체 배열의 경우, 안전 배열에는 각 UiaRect구조체마다 4개의 double 값으로 이루어진 순차 배열이 포함됩니다. 왼쪽, 위쪽, 너비및 높이의 첫 번째 UiaRect 멤버는 인덱스 0에서 3까지를 차지하고, 두 번째 사각형의 멤버는 인덱스 4에서 7까지를 차지합니다.
IUIAutomation 인터페이스에는 SAFEARRAY 다양한 다른 데이터 형식 간에 변환하기 위한 다음 메서드가 포함되어 있습니다.
메서드 | 묘사 |
---|---|
IUIAutomation::IntNativeArrayToSafeArray | 정수 배열을 SAFEARRAY변환합니다. |
IUIAutomation::IntSafeArrayToNativeArray | 정수의 SAFEARRAY 배열로 변환합니다. |
IUIAutomation::SafeArrayToRectNativeArray | 사각형 좌표가 포함된 SAFEARRAY RECT 형식의 배열로 변환합니다. |
공급자
공급자는 공급자에서 정보를 검색하기 위해 UI 자동화에서 호출하는 여러 인터페이스 메서드를 구현해야 합니다. 이 정보는 여러 번 값 배열로 구성됩니다. 배열을 UI 자동화로 반환하려면 공급자가 배열을 SAFEARRAY 구조로 압축해야 합니다. 배열 요소는 예상된 데이터 형식이어야 하며 예상 순서대로 표시되어야 합니다.
관련 항목