创建WIA设备管理器会产生编译时错误

时间:2016-05-22 19:31:09

标签: c winapi wia

我正在关注msdn https://msdn.microsoft.com/en-us/library/ms629848(v=vs.85).aspx中的示例:

HRESULT CreateWiaDeviceManager(IWiaDevMgr2 **ppWiaDevMgr)
{
CoInitialize(NULL);

// Validate arguments
if (NULL == ppWiaDevMgr)
    return E_INVALIDARG;

// Initialize out variables
*ppWiaDevMgr = NULL;

// Create an instance of the device manager
HRESULT hr = CoCreateInstance( CLSID_WiaDevMgr2, NULL, CLSCTX_LOCAL_SERVER, IID_IWiaDevMgr2, (void**)ppWiaDevMgr ); 

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

但是在编译时我得到了这个错误:

错误389错误C2440:'type cast':无法从'const CLSID'转换为'const IID * const'

错误392错误C2440:'type cast':无法从'const IID'转换为'const IID * const'

关于CoCreateInstance的参数。

我没有对示例代码做任何有意义的更改...... 任何人都可以建议我为什么这样做?

1 个答案:

答案 0 :(得分:1)

尝试 HRESULT hr = CoCreateInstance( &CLSID_WiaDevMgr2, NULL, &CLSCTX_LOCAL_SERVER, &IID_IWiaDevMgr2, (void**)ppWiaDevMgr );

在C ++中,代码构建为在MSVC2013上发布,包括:

#include <guiddef.h>
#include <afxwin.h>
#include <Wia.h>
#include <tchar.h>