서버 주석 사용
이 항목에서는 서버 주석을 사용하여 콜백 개체를 지정하는 방법에 대한 정보를 제공합니다.
콜백 개체를 지정하는 속성을 재정의하려면
- 주석을 추가할 액세스 가능한 요소에 대한 IAccessible 인터페이스 포인터를 가져옵니다.
- 액세스 가능한 요소에서 QueryInterface 를 호출하여 IAccIdentity 인터페이스 포인터를 가져옵니다.
- IAccIdentity 인터페이스 포인터에서 IAccIdentity::GetIdentityString()을 호출하여 주석을 추가할 액세스 가능한 요소를 고유하게 식별하는 문자열을 가져옵니다.
- CoCreateInstance 또는 CoCreateInstanceEx를 사용하여 IAccPropServices 개체를 만듭니다.
- IAccPropServer를 구현하는 COM(구성 요소 개체 모델) 개체를 만듭니다.
- IAccPropServices::SetPropServer를 호출하여 ID 문자열, 재정의할 속성을 나타내는 GUID 및 IAccPropServer 콜백 개체에 대한 포인터를 전달합니다.
- 인터페이스 포인터 및 사용 가능한 메모리를 해제합니다.
클라이언트가 액세스 가능한 요소의 속성을 요청하면 콜백 개체가 호출되고 값이 클라이언트에 반환됩니다.
값을 지정할 때와 마찬가지로 서버 개발자는 IAccPropServices::ComposeHwndIdentityString 메서드를 사용하여 ID 문자열을 가져올 수 있습니다. 또는 IAccPropServices::SetHwndPropServer 메서드를 사용하고 ID 문자열 대신 hwnd, idObject 또는 idChild 매개 변수를 지정할 수 있습니다.
컨테이너 개체에서 SetPropServer 또는 SetHwndPropServer 를 사용하는 경우 서버 개발자는 필요에 따라 재정의 정보가 해당 컨테이너의 모든 요소 자식에도 적용되도록 지정할 수 있습니다.
서버는 IAccPropServices::ClearProps를 사용하여 언제든지 주석을 명시적으로 지울 수 있습니다. 주석이 추가되는 액세스 가능한 요소가 사라지면 주석 서비스가 주석 정보를 자동으로 클린 해제하므로 이는 일반적으로 필요하지 않습니다.
다음은 이 절차를 사용하여 주석을 추가할 수 있는 속성 목록입니다.
콜백을 지정할 때 지원되는 속성
콜백을 지정할 때 다음 속성에 주석을 추가할 수 있습니다. 현재 이러한 속성은 값을 지정하여 직접 주석을 추가할 수 없습니다.
속성 | 형식 |
---|---|
PROPID_ACC_NAME | VT_BSTR |
PROPID_ACC_DESCRIPTION | VT_BSTR |
PROPID_ACC_ROLE | VT_I4 |
PROPID_ACC_STATE | VT_I4 |
PROPID_ACC_HELP | VT_BSTR |
PROPID_ACC_KEYBOARDSHORTCUT | VT_BSTR |
PROPID_ACC_DEFAULTACTION | VT_BSTR |
PROPID_ACC_VALUEMAP | VT_BSTR |
PROPID_ACC_ROLEMAP | VT_BSTR |
PROPID_ACC_STATEMAP | VT_BSTR |
PROPID_ACC_FOCUS | VT_DISPATCH VT_I4 |
PROPID_ACC_SELECTION | VT_DISPATCH VT_I4 VT_UNKNOWN |
PROPID_ACC_PARENT | VT_DISPATCH |
PROPID_ACC_NAV_UP | VT_DISPATCH VT_I4 |
PROPID_ACC_NAV_DOWN | VT_DISPATCH VT_I4 |
PROPID_ACC_NAV_LEFT | VT_DISPATCH VT_I4 |
PROPID_ACC_NAV_RIGHT | VT_DISPATCH VT_I4 |
PROPID_ACC_NAV_PREV | VT_DISPATCH VT_I4 |
PROPID_ACC_NAV_NEXT | VT_DISPATCH VT_I4 |
PROPID_ACC_NAV_FIRSTCHILD | VT_DISPATCH VT_I4 |
PROPID_ACC_NAV_LASTCHILD | VT_DISPATCH VT_I4 |