다음을 통해 공유


연결이 끊어질 수 있는 디바이스에 도전하기 위한 코드 예제

중요

WSD 챌린저 기능은 더 이상 사용되지 않으며 모든 WSD 챌린저 관련 설명서는 이전 버전 설명서에 보관됩니다.

다음 코드 예제에서는 RegisterDeviceToChallenge 함수( 도우미 메서드 구현을 위한 샘플 코드의 코드 예제에 나열됨)를 호출하여 연결이 끊어질 수 있는 디바이스에 이의를 제기하는 방법을 보여 줍니다.

HRESULT hr = S_OK;

if (SUCCEEDED(hr))
{
    //
    // Activate ScanProxy to retrieve the IScanService interface for it
    //
    hr = m_pFunctionInstance->QueryService(__uuidof(WSDScanProxy),
                                           __uuidof(IScanService),
                                           (void**) &m_pScanProxy);
    if (FAILED(hr))
    {
        WIAS_ERROR((g_hInst, "IFunctionInstance::QueryService(WSDScanProxy, IScanService) failed, cannot activate ScanProxy, hr = 0x%08X", hr));
 
        if (WSD_COMMUNICATION_ERROR(hr))
        {
            RegisterDeviceToChallenge();
        }
    }
}

if (SUCCEEDED(hr))
{
    //
    // Retrieve the IScanServiceEvents interface from the ScanProxy
    //
    hr = m_pScanProxy->QueryInterface(__uuidof(IScanServiceEvents), (void**)&m_pScanEvents);
    if (FAILED(hr))
    {
        WIAS_ERROR((g_hInst, "IScanService::QueryInterface(IScanServiceEvents) failed, hr = 0x%08X", hr));
 
        if (WSD_COMMUNICATION_ERROR(hr))
        {
            RegisterDeviceToChallenge();
        }
    }
}