我正在尝试在我的 VS2012 C++ 库中实现一些 WIA 2.0 代码,并且遇到了IWiaDevMgr2::GetImageDlg调用的问题,特别是 ppbstrFilePaths 参数。我不太确定如何声明/初始化它。
从http://msdn.microsoft.com/en-us/library/windows/desktop/aa359932(v=vs.85).aspx的文档中:
ppbstrFilePaths [in] 类型 - BSTR**
指向已扫描文件的路径数组的指针的地址。在调用 IWiaDevMgr2::GetImageDlg 之前,将指针初始化为指向大小为零 (0) 的数组。见备注。
我已经尝试了各种不同的声明方式,但都没有成功,例如:
// No scanner selection dialog, hr = E_OUTOFMEMORY
BSTR *files = new BSTR[0];
HRESULT hr = _pWiaDevMgr->GetImageDlg(0, NULL, *_parentHwnd, path, fileTemplate, numFiles, &files, &_pWiaItemRoot);
我也尝试过类似的事情:
// No scanner selection dialog, hr = E_OUTOFMEMORY
BSTR **files = (BSTR**)CoTaskMemAlloc(0);
*files = new BSTR[0];
HRESULT hr = _pWiaDevMgr->GetImageDlg(0, NULL, *_parentHwnd, path, fileTemplate, &numFiles, files, &_pWiaItemRoot);
谁能指出我声明和初始化此 BSTR ** 的正确方向?我不是一个大的 C++ 开发人员,在这一点上几乎是在猜测。