다음을 통해 공유


WIA 항목 플래그 및 범주의 사용 예

이 항목은 Windows Vista 이상에 적용됩니다.

이 섹션에서는 WIA 항목 플래그 및 WIA 범주와 함께 Windows Vista의 스캐너 및 카메라 항목 트리를 보여 줍니다. 다이어그램은 Windows Vista 이상에서 카메라 항목 트리와 스캐너 항목 트리의 모양을 보여 줍니다. 카메라 항목 트리와 스캐너 항목 트리 모두에 대한 두 개의 다이어그램이 있습니다. 두 경우 모두 첫 번째 다이어그램은 필요한 WIA 항목 플래그를 보여 주며 두 번째 다이어그램은 사용되는 WIA 범주를 보여 줍니다. 코드 예제는 애플리케이션이 플래그와 범주의 조합을 사용하기 위해 수행하는 작업의 예입니다.

다음 그림에서는 설정해야 하는 WIA_ITEM_FLAGS 속성의 카메라 항목 트리와 플래그를 보여 있습니다.

wia 항목 플래그가 있는 카메라 트리를 보여 주는 다이어그램

앞의 그림에서 왼쪽의 트리는 카메라 항목 트리를 나타냅니다. 오른쪽의 풍선에는 이러한 디바이스에서 사용해야 하는 WIA 항목 플래그가 포함되어 있습니다.

다음 다이어그램에서는 설정해야 하는 WIA_IPA_ITEM_CATEGORY 속성의 카메라 항목 트리 및 범주를 보여 있습니다.

범주를 보여 주는 카메라 트리를 보여 주는 다이어그램

앞의 그림에서 왼쪽의 트리는 카메라 항목 트리를 나타냅니다. 오른쪽의 풍선에는 이러한 디바이스에서 사용해야 하는 범주가 포함되어 있습니다.

다음 다이어그램에서는 문서 피더와 필름 스캐너가 있는 스캐너의 항목 트리와 설정해야 하는 WIA_ITEM_FLAGS 속성의 플래그를 보여 줍니다.

문서 공급기와 필름 스캐너 및 wia 항목 플래그가 있는 스캐너의 항목 트리를 보여 주는 다이어그램

앞의 그림에서 왼쪽의 트리는 스캐너 항목 트리를 나타냅니다. 오른쪽의 풍선에는 이러한 디바이스에서 사용해야 하는 WIA 항목 플래그가 포함되어 있습니다.

다음 그림에서는 스캐너에 대한 항목 트리와 설정해야 하는 WIA_IPA_ITEM_CATEGORY 속성의 범주를 보여줍니다.

스캐너의 항목 트리와 설정해야 하는 범주를 보여 주는 다이어그램

앞의 그림에서 왼쪽의 트리는 스캐너 항목 트리를 나타냅니다. 오른쪽의 풍선에는 이러한 디바이스가 설정해야 하는 WIA_IPA_ITEM_CATEGORY 속성의 범주가 포함됩니다.

WIA에서 정의한 모든 범주의 전체 목록과 각 범주에 대한 유효한 WIA 항목 플래그에 대한 정보는 WIA_IPA_ITEM_CATEGORY.

모든 WIA 항목 플래그의 전체 목록은 WIA_IPA_ITEM_FLAGS 참조하세요.

다음 코드 예제에서는 애플리케이션이 WIA 항목 트리에 있는 WIA 항목을 분류하기 위해 WIA_IPA_ITEM_FLAGS 및 WIA_IPA_ITEM_CATEGORY 속성의 조합을 사용하는 방법을 보여 줍니다.

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