Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Voor een voorbeeld van een stuurprogramma dat apparaatstatusberichten verzendt, raadpleegt u het voorbeeld van het uitgebreide WIA 2.0-monsterstuurprogramma in de wia-stuurprogrammavoorbeelden (Windows Image Acquisition). In het voorbeeld ziet u hoe een eenvoudige fouthandler kan worden geïmplementeerd.
Voorbeeld: Extensie voor foutafhandeling
In het volgende codefragment zie je hoe een eenvoudige fouthandlingextensie kan worden geïmplementeerd. Deze extensie voor foutafhandeling verwerkt alleen de WIA_ERROR_COVER_OPEN apparaatstatusfout en toont een modaal dialoogvenster. Houd er rekening mee dat een deel van de code is weggelaten om dit voorbeeld te vereenvoudigen.
STDMETHODIMP
CErrHandler::ReportStatus(
IN LONG lFlags,
IN HWND hwndParent,
IN IWiaItem2 *pWiaItem2,
IN HRESULT hrStatus,
IN LONG lPercentComplete)
{
HRESULT hr = WIA_STATUS_NOT_HANDLED;
if (WIA_ERROR_COVER_OPEN == hrStatus)
{
int i;
i = MessageBox(hwndParent,
ERROR_COVER_OPEN_STR,
TEXT("Driver UI Extension"),
MB_RETRYCANCEL|MB_TASKMODAL|MB_ICONERROR);
if (IDOK == i)
{
hr = S_OK;
}
else
{
hr = WIA_ERROR_COVER_OPEN;
}
}
return hr;
}
STDMETHODIMP
CErrHandler::GetStatusDescription(
IN LONG lFlags,
IN IWiaItem2 *pWiaItem2,
IN HRESULT hrStatus,
OUT BSTR *pbstrDescription)
{
HRESULT hr = pbstrDescription ? WIA_STATUS_NOT_HANDLED :
E_INVALIDARG;
if (WIA_ERROR_COVER_OPEN == hrStatus)
{
BSTR bstrDescription = NULL;
bstrDescription = SysAllocString(ERROR_COVER_OPEN_STR);
if (bstrDescription)
{
*pbstrDescription = bstrDescription;
hr = S_OK;
}
else
{
hr = E_OUTOFMEMORY;
}
}
return hr;
}