创建 WIA 设备管理器

使用 Windows 映像采集 (WIA) 服务的第一步是获取 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是分别表示 IWiaDevMgr 的类 ID 和接口 ID 的 WIA 常量。 CLSID_WiaDevMgr2和IID_IWiaDevMgr2是分别表示 IWiaDevMgr2 的类 ID 和接口 ID 的 WIA 常量。

CoCreateInstance 调用的 dwClsContext 参数的值必须CLSCTX_LOCAL_SERVER。 不支持其他服务器类型,组件对象模型 (COM) 拒绝此参数的任何其他值。