Partilhar via


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.

diagrama ilustrando uma árvore de câmera com sinalizadores de item wia.

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.

diagrama ilustrando uma árvore de câmera mostrando uma categoria.

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.

diagrama ilustrando a árvore de itens para um scanner com um alimentador de documentos e um scanner de filme e os sinalizadores de item wia.

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.

diagrama ilustrando a árvore de itens para um scanner e as categorias que devem ser definidas.

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;
    }
    ...
}
...