创建 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) 拒绝此参数的任何其他值。