Codebeispiel für die Herausforderung eines potenziell getrennten Geräts

Wichtig

Die WSD-Challenger-Funktionalität ist veraltet, und die gesamte WSD Challenger-bezogene Dokumentation wird in der Dokumentation zu früheren Versionen archiviert.

Das folgende Codebeispiel zeigt einen Aufruf der RegisterDeviceToChallenge-Funktion (die im Codebeispiel unter Beispielcode für die Implementierung von Hilfsmethoden aufgeführt ist), um ein potenziell getrenntes Gerät herauszufordern.

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();
        }
    }
}