Exemplo de uso de sinalizadores e categorias de itens WIA
Este tópico se aplica ao Windows Vista e posterior.
Esta seção ilustra as árvores de itens de scanner e câmera no Windows Vista, juntamente com os sinalizadores de item WIA e as categorias WIA. Os diagramas descrevem como seria uma árvore de itens de câmera e uma árvore de itens do scanner no Windows Vista e posterior. Há dois diagramas para a árvore de itens da câmera e a árvore de itens do scanner. Em ambos os casos, o primeiro diagrama ilustra quais sinalizadores de itens WIA são necessários, enquanto o segundo diagrama ilustra quais categorias de WIA são usadas. O exemplo de código é um exemplo do que um aplicativo faria para usar a combinação de sinalizadores e categorias.
A figura a seguir mostra uma árvore de itens de câmera e os sinalizadores na propriedade WIA_ITEM_FLAGS que deve ser definida.
Na figura anterior, a árvore à esquerda representa a árvore de itens da câmera. Os balões à direita contêm os sinalizadores de item WIA que um dispositivo precisaria usar.
O diagrama a seguir mostra uma árvore de itens de câmera e a categoria na propriedade WIA_IPA_ITEM_CATEGORY que deve ser definida.
Na figura anterior, a árvore à esquerda representa a árvore de itens da câmera. O balão à direita contém a categoria que um dispositivo precisaria usar.
O diagrama a seguir mostra a árvore de itens de um scanner com um alimentador de documentos e um scanner de filme e os sinalizadores na propriedade WIA_ITEM_FLAGS que deve ser definida.
Na figura anterior, a árvore à esquerda representa a árvore de itens do scanner. Os balões à direita contêm os sinalizadores de item WIA que um dispositivo precisaria usar.
A figura a seguir mostra a árvore de itens de um scanner e as categorias na propriedade WIA_IPA_ITEM_CATEGORY que deve ser definida.
Na figura anterior, a árvore à esquerda representa a árvore de itens do scanner. Os balões à direita contêm as categorias na propriedade WIA_IPA_ITEM_CATEGORY que um dispositivo deve definir.
Para obter uma lista completa de todas as categorias definidas pelo WIA e informações sobre sinalizadores de itens WIA válidos para cada categoria, consulte WIA_IPA_ITEM_CATEGORY.
Para obter uma lista completa de todos os sinalizadores de item WIA , consulte WIA_IPA_ITEM_FLAGS.
O exemplo de código a seguir demonstra como um aplicativo pode usar a combinação das propriedades WIA_IPA_ITEM_FLAGS e WIA_IPA_ITEM_CATEGORY para classificar um item WIA encontrado na árvore de itens WIA.
HRESULT hr = S_OK;
PROPSPEC ps[2] = {{PRSPEC_PROPID,WIA_IPA_ITEM_FLAGS},
{PRSPEC_PROPID, WIA_IPA_ITEM_CATEGORY}};
PROPVARIANT pv[2] = {0};
hr = pIWiaPropertyStorage->ReadMultiple(2, ps, pv);
if (hr == S_OK)
{
if (pv[0].lVal & WiaItemTypeProgrammableDataSource)
{
// Item is a programmable data source.
}
else
{
// Item is NOT a programmable data source and there must be
// some data associated with the device, or a folder.
// Use the WIA item flags to further classify the item.
if (pv[0].lVal & WiaItemTypeImage)
{
// Item represents image data.
}
if (pv[0].lVal & WiaItemTypeAudio)
{
// Item represents audio data.
}
if (pv[0].lVal & WiaItemTypeVideo)
{
// Item represents video data.
}
if (pv[0].lVal & WiaItemTypeDocument)
{
// Item represents document data.
}
}
// Read the category to properly use the item.
switch(pv[1].lVal)
{
case WIA_CATEGORY_FINISHED_FILE:
// Item is a finished file item.
break;
case WIA_CATEGORY_FLATBED:
// Item is a flatbed scanner item.
break;
case WIA_CATEGORY_FILM:
// Item is a film scanning item.
break;
case WIA_CATEGORY_FEEDER:
// Item is a document feeder scanner item.
break;
default:
// Item is not a WIA-defined item (possibly vendor specific?).
break;
}
...
}
...