매개 변수에서 자식 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_accFocus 및 get_accSelection 메서드에 적용됩니다. 또한 AccessibleObjectFromEvent, AccessibleObjectFromPoint 및 AccessibleObjectFromWindow 클라이언트 함수에도 적용됩니다.
다음 표에는 클라이언트에 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 및 공간 및 논리 탐색을 참조하세요.