WIA 장치 관리자 만들기

WIA(Windows 이미지 획득) 서비스를 사용하는 첫 번째 단계는 IWiaDevMgr 인터페이스 포인터(Windows XP 또는 이전 버전용으로 프로그래밍하는 경우) 또는 IWiaDevMgr2 인터페이스 포인터(Windows Vista 이상용으로 프로그래밍하는 경우)를 가져오는 것입니다. 이렇게 하려면 적절한 매개 변수를 사용하여 CoCreateInstance 를 호출합니다. 샘플 애플리케이션 WiaSSamp은 다음 코드로 구현된 전역 함수 내에 디바이스 관리자를 만듭니다.

    HRESULT CreateWiaDeviceManager( IWiaDevMgr **ppWiaDevMgr ) //XP or earlier
    HRESULT CreateWiaDeviceManager( IWiaDevMgr2 **ppWiaDevMgr ) //Vista or later
    {
        //
        // Validate arguments
        //
        if (NULL == ppWiaDevMgr)
        {
            return E_INVALIDARG;
        }

        //
        // Initialize out variables
        //
        *ppWiaDevMgr = NULL;

        //
        // Create an instance of the device manager
        //
        
        //XP or earlier:
        HRESULT hr = CoCreateInstance( CLSID_WiaDevMgr, NULL, CLSCTX_LOCAL_SERVER, IID_IWiaDevMgr, (void**)ppWiaDevMgr );

        //Vista or later:
        HRESULT hr = CoCreateInstance( CLSID_WiaDevMgr2, NULL, CLSCTX_LOCAL_SERVER, IID_IWiaDevMgr2, (void**)ppWiaDevMgr ); 

        //
        // Return the result of creating the device manager
        //
        return hr;
    }

이 예제에서 CLSID_WiaDevMgr 및 IID_IWiaDevMgr 각각 클래스 ID와 IWiaDevMgr의 인터페이스 ID를 나타내는 WIA 상수입니다. CLSID_WiaDevMgr2 및 IID_IWiaDevMgr2 각각 IWiaDevMgr2의 클래스 ID와 인터페이스 ID를 나타내는 WIA 상수입니다.

CoCreateInstance 호출의 dwClsContext 인수 값은 CLSCTX_LOCAL_SERVER 합니다. 다른 서버 형식은 지원되지 않으며 COM(구성 요소 개체 모델)은 이 매개 변수에 대한 다른 값을 거부합니다.