创建设备

应用程序获得给定设备的设备 ID 后,可以调用 IWiaDevMgr::CreateDeviceIWiaDevMgr2::CreateDevice方法,该方法创建 IWiaItemIWiaItem2 对象的分层树,这些对象表示图像处理设备和图像扫描床,以及该设备中包含的文件夹。

来自示例应用程序 WiaSSamp 的以下示例实现了采用设备 ID 作为参数的函数。 有关如何获取特定设备的设备 ID 的信息,请参阅 读取设备属性

    //XP or earlier:
    HRESULT CreateWiaDevice( IWiaDevMgr *pWiaDevMgr, BSTR bstrDeviceID, IWiaItem **ppWiaDevice ) 
    //Vista or later:
    HRESULT CreateWiaDevice( IWiaDevMgr2 *pWiaDevMgr, BSTR bstrDeviceID, IWiaItem2 **ppWiaDevice ) 
    {
        //
        // Validate arguments
        //
        if (NULL == pWiaDevMgr || NULL == bstrDeviceID || NULL == ppWiaDevice)
        {
            return E_INVALIDARG;
        }

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

        //
        // Create the WIA Device
        //
        HRESULT hr = pWiaDevMgr->CreateDevice( bstrDeviceID, ppWiaDevice );

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

在此示例中, pWiaDevMgr 是指向 IWiaDevMgrIWiaDevMgr2 接口的指针, ppWiaDevice 是一个变量,在调用 IWiaDevMgr::CreateDevice (或 IWiaDevMgr2::CreateDevice) 后,包含指向表示新创建的设备的树根项的指针的地址。