Compartir a través de


Creación de una Administrador de dispositivos WIA

El primer paso para usar los servicios de adquisición de imágenes de Windows (WIA) es obtener un puntero de interfaz IWiaDevMgr (si está programando para Windows XP o versiones anteriores) o un puntero de interfaz IWiaDevMgr2 (si está programando para Windows Vista o versiones posteriores). Para ello, llame a CoCreateInstance con los parámetros adecuados. La aplicación de ejemplo WiaSSamp crea un administrador de dispositivos dentro de una función global implementada por el código siguiente:

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

En este ejemplo, CLSID_WiaDevMgr y IID_IWiaDevMgr son constantes WIA que representan el identificador de clase y el identificador de interfaz de IWiaDevMgr, respectivamente. CLSID_WiaDevMgr2 y IID_IWiaDevMgr2 son constantes WIA que representan el identificador de clase y el identificador de interfaz de IWiaDevMgr2, respectivamente.

El valor del argumento dwClsContext de la llamada CoCreateInstance debe ser CLSCTX_LOCAL_SERVER. No se admite ningún otro tipo de servidor y el Modelo de objetos componentes (COM) rechaza cualquier otro valor para este parámetro.