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