다음을 통해 공유


IRawElementProviderWindowlessSite::GetAdjacentFragment 메서드(uiautomationcore.h)

이 컨트롤 사이트에서 소유한 창 없는 Microsoft ActiveX 컨트롤에 인접한 조각에 대한 조각 포인터를 검색합니다.

구문

HRESULT GetAdjacentFragment(
                NavigateDirection           direction,
  [out, retval] IRawElementProviderFragment **ppParent
);

매개 변수

direction

[out, retval] ppParent

형식: IRawElementProviderFragment**

인접한 조각을 받습니다.

반환 값

형식: HRESULT

메서드가 성공하면 S_OK를 반환하고, 그러지 않으면 HRESULT 오류 코드를 반환합니다. 방향이 NavigateDirection_FirstChild 또는 이 메서드에 유효하지 않은 NavigateDirection_LastChild 경우 반환 값이 E_INVALIDARG. 요청된 방향에 인접한 조각이 없으면 메서드는 S_OK 반환하고 ppRetValNULL로 설정합니다.

설명

조각의 부모를 반환하려면 IRawElementProviderFragment 인터페이스를 구현하는 개체가 Navigate 메서드를 구현할 수 있어야 합니다. 탐색을 구현하는 것은 부모 개체의 액세스 가능한 트리에서 컨트롤이 위치를 확인할 수 없기 때문에 창이 없는 ActiveX 컨트롤에서는 어렵습니다. GetAdjacentFragment 메서드를 사용하면 창이 없는 ActiveX 컨트롤이 인접한 조각에 대한 사이트를 쿼리한 다음 Navigate라는 클라이언트에 해당 조각을 반환할 수 있습니다.

공급자는 일반적으로 IRawElementProviderFragment::Navigate 메서드 처리의 일부로 이 메서드를 호출합니다.

예제

다음 C++ 코드 예제에서는 GetAdjacentFragment 메서드를 구현하는 방법을 보여줍니다.

IFACEMETHODIMP CProviderWindowlessSite::GetAdjacentFragment(
        enum NavigateDirection direction, IRawElementProviderFragment **ppFragment)   
{
    if (ppFragment == NULL)
    {
        return E_INVALIDARG;
    }
    
    *ppFragment = NULL;
    HRESULT hr = S_OK;

    switch (direction)
    {
        case NavigateDirection_Parent:
            {  
                IRawElementProviderSimple *pSimple = NULL;

                // Call an application-defined function to retrieve the
                // parent provider interface.
                hr = GetParentProvider(&pSimple);  
                if (SUCCEEDED(hr))  
                {  
                    // Get the parent's IRawElementProviderFragment interface.
                    hr = pSimple->QueryInterface(IID_PPV_ARGS(ppFragment));  
                    pSimple->Release();  
                } 
            }  
            break;  
  
        case NavigateDirection_FirstChild:
        case NavigateDirection_LastChild:
            hr = E_INVALIDARG;
            break;

        // Ignore NavigateDirection_NextSibling and NavigateDirection_PreviousSibling
        // because there are no adjacent fragments.
        default:  
            break;  
    }  
  
    return hr;  
}   

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2012 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 uiautomationcore.h(UIAutomation.h 포함)

추가 정보

IRawElementProviderWindowlessSite