매개 변수에서 자식 ID를 사용하는 방법
이 항목에서는 입력 매개 변수, 출력 매개 변수 및 IAccessible 메서드에서 반환된 자식 ID를 해석하기 위한 특수 사례에 대해 설명합니다.
입력 매개 변수
대부분의 Microsoft Active Accessibility 함수와 대부분의 IAccessible 속성은 VARIANT 구조를 입력 매개 변수로 사용합니다. 대부분의 IAccessible 속성의 경우 이 매개 변수를 사용하면 클라이언트 개발자가 개체 자체에 대한 정보 또는 개체의 단순 요소 중 하나에 대한 정보를 원하는지 지정할 수 있습니다.
Microsoft Active Accessibility는 개체 자체에 대한 정보가 필요함을 나타내는 상수 CHILDID_SELF 제공합니다. 간단한 요소에 대한 정보를 얻기 위해 클라이언트 개발자는 VARIANT 매개 변수에 자식 ID를 지정합니다.
VARIANT 매개 변수를 초기화할 때는 lVal 멤버에서 자식 ID 값(또는 CHILDID_SELF)을 지정하는 것 외에도 vt 멤버에 VT_I4 지정해야 합니다.
예를 들어 개체의 자식 요소 중 하나가 아닌 개체의 이름을 얻으려면 IAccessible::get_accName(lVal 멤버의 CHILDID_SELF 및 vt 멤버의 VT_I4)의 첫 번째 매개 변수에 대한 VARIANT 초기화합니다. 그런 다음 IAccessible::get_accName호출합니다.
출력 매개 변수
여러 IAccessible 함수 및 메서드에는 자식 ID 또는 자식 개체에 대한 IDispatch 인터페이스 포인터가 포함된 VARIANT* 출력 매개 변수가 있습니다. VT_I4 자식 ID(단순 요소)를 받는 경우와 IDispatch 인터페이스 포인터를 CHILDID_SELF(전체 개체)와 함께 받는 경우에 따라 클라이언트가 취해야 할 여러 단계가 있습니다. 다음 단계에 따라 클라이언트가 IAccessible 메서드 및 속성을 함께 사용할 수 있도록 하는 IAccessible 인터페이스 포인터 및 자식 ID를 제공합니다. 이러한 단계는 IAccessible::accHitTest, get_accFocus및 get_accSelection 메서드에 적용됩니다. 또한 AccessibleObjectFromEvent, AccessibleObjectFromPoint및 AccessibleObjectFromWindow 클라이언트 함수에도 적용됩니다.
다음 표는 클라이언트가 IAccessible인터페이스 포인터와 자식 ID를받을 수 있도록 반환 가능한 결과와 필요한 후처리 단계를 나열합니다.
반환된 결과 | 반환 값에 대한 후처리 |
---|---|
IDispatch 인터페이스 포인터 | 전체 개체입니다. QueryInterface 호출하여 IAccessible 인터페이스 포인터에 액세스합니다. IAccessible 인터페이스 포인터를 CHILDID_SELF와 함께 사용하여 IAccessible 메서드 및 속성에 액세스합니다. |
VT_I4 자식 ID | 자식 ID를 사용하여 IAccessible::get_accChild 호출하여 IDispatch 인터페이스 포인터가 있는지 확인합니다. IDispatch 인터페이스 포인터를 가져오는 경우 CHILDID_SELF 사용하여 IAccessible 인터페이스 메서드 및 속성에 액세스합니다. get_accChild 호출이 실패한 경우, 간단한 요소일 수 있습니다. 호출이 반환된 VT_I4 자식 ID와 함께 원래 IAccessible 인터페이스 포인터(위에서 언급한 메서드 또는 함수에 대한 호출에 사용한 포인터)를 사용합니다. |
VARIANT 매개 변수를 사용하려면 먼저 VariantInit COM(Component Object Model) 함수를 호출하여 초기화해야 합니다. 구조가 완료되면 VariantClear 호출하여 해당 VARIANT예약된 메모리를 해제합니다.
특수 사례
위의 표에 있는 지침에는 예외가 있으며, 예를 들어 IAccessible::accHitTest 메서드가 자식 ID를 반환하는 경우가 있습니다. 자식이 액세스 가능한 개체인 경우 서버는 IDispatch 인터페이스를 반환해야 합니다. IAccessible::accHitTest에서 자식 ID가 반환되면 그 자식은 단순한 요소입니다.
또한 에 대해서는 accNavigate의 특별한 경우가 있습니다. 자세한 내용은 IAccessible::accNavigate 및 공간 및 논리 탐색참조하세요.