매개 변수에서 자식 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_SELFvt 멤버의 VT_I4)의 첫 번째 매개 변수에 대해 VARIANT를 초기화한 다음 IAccessible::get_accName 호출합니다.

출력 매개 변수

여러 IAccessible 함수 및 메서드에는 자식 ID 또는 자식 개체에 대한 IDispatch 인터페이스 포인터가 포함된 VARIANT* 출력 매개 변수가 있습니다. 클라이언트가 VT_I4 자식 ID(단순 요소) 또는 CHILDID_SELF(전체 개체)가 있는 IDispatch 인터페이스 포인터를 받는지에 따라 수행해야 하는 여러 단계가 있습니다. 다음 단계에서는 클라이언트가 IAccessible 메서드 및 속성을 함께 사용할 수 있도록 하는 IAccessible 인터페이스 포인터 및 자식 ID를 제공합니다. 이러한 단계는 IAccessible::accHitTest, get_accFocusget_accSelection 메서드에 적용됩니다. 또한 AccessibleObjectFromEvent, AccessibleObjectFromPointAccessibleObjectFromWindow 클라이언트 함수에도 적용됩니다.

다음 표에는 클라이언트에 IAccessible 인터페이스 포인터와 자식 ID가 있도록 반환될 수 있는 결과와 필요한 사후 처리 단계가 나열되어 있습니다.

반환된 결과 반환 값에 대한 사후 처리
IDispatch 인터페이스 포인터 전체 개체입니다. QueryInterface 를 호출하여 IAccessible 인터페이스 포인터에 액세스합니다.
IAccessible 인터페이스 포인터를 CHILDID_SELF 사용하여 IAccessible 메서드 및 속성에 액세스합니다.
자식 ID VT_I4 자식 ID 를 사용하여 IAccessible::get_accChild 호출하여 IDispatch 인터페이스 포인터가 있는지 확인합니다. IDispatch 인터페이스 포인터를 가져오는 경우 CHILDID_SELF 사용하여 IAccessible 인터페이스 메서드 및 속성에 액세스합니다.
get_accChild 호출에 실패하면 간단한 요소가 있습니다. 호출이 반환된 VT_I4 자식 ID와 함께 원래 IAccessible 인터페이스 포인터(위에서 언급한 메서드 또는 함수 호출에 사용한 인터페이스 포인터)를 사용합니다.

VARIANT 매개 변수를 사용하려면 먼저 VARIANTInit COM(구성 요소 개체 모델) 함수를 호출하여 초기화해야 합니다. 구조체가 완료되면 VariantClear 를 호출하여 해당 VARIANT에 예약된 메모리를 해제 합니다.

특수 사례

IAccessible::accHitTest 메서드에서 자식 ID를 반환하는 경우와 같이 위 표의 지침에는 예외가 있습니다. 자식이 액세스 가능한 개체인 경우 서버는 IDispatch 인터페이스를 반환해야 합니다. IAccessible::accHitTest에서 자식 ID를 반환하는 경우 자식은 단순 요소입니다.

또한 accNavigate에 대한 특별한 경우가 있습니다. 자세한 내용은 IAccessible::accNavigate공간 및 논리 탐색을 참조하세요.

개념

IDispatch 인터페이스

VARIANT 구조체