IWiaItem2::GetExtension 方法
获取 Windows 映像采集 (WIA) 2.0 设备驱动程序可能附带的扩展接口。
语法
HRESULT GetExtension(
[in] LONG lFlags,
[in] BSTR bstrName,
[in] REFIID riidExtensionInterface,
[out] VOID **ppOut
);
参数
-
lFlags [in]
-
类型: LONG
当前未使用。 应设置为零。
-
bstrName [in]
-
类型: BSTR
指定调用应用程序需要指针指向的扩展的名称。
-
分段筛选器
-
分段筛选器扩展。 这是此参数目前唯一有效的值。
riidExtensionInterface [in]
类型: REFIID
指定扩展接口的标识符。
ppOut [out]
类型: VOID**
接收指向扩展接口的指针的地址。
返回值
类型: HRESULT
如果此方法成功,则返回 S_OK。 否则,它将返回 HRESULT 错误代码。
备注
应用程序调用此方法来创建实现 WIA 2.0 驱动程序扩展接口之一的扩展对象。 IWiaItem2::GetExtension 将扩展对象的扩展接口的地址存储在 riidExtensionInterface 参数中。 然后,应用程序使用接口指针调用其方法。
应用程序必须对通过 riidExtensionInterface 参数接收的接口指针调用 IUnknown::Release 方法。
示例
CreateSegmentationFilter 通过在传入的 IWiaItem2 接口上调用 IWiaItem2::GetExtension, (IWiaSegmentationFilter) 创建驱动程序分段筛选器的实例。
HRESULT
CreateSegmentationFilter(
IWiaItem2 *pWiaItem2,
IWiaSegmentationFilter **ppSegmentationFilter)
{
HRESULT hr = S_OK;
IWiaSegmentationFilter *pSegFilter = NULL;
if (!pWiaItem2 || !ppSegmentationFilter)
{
hr = E_INVALIDARG;
}
if (SUCCEEDED(hr))
{
BSTR bstrFilterString = SysAllocString(WIA_SEGMENTATION_FILTER_STR);
if (bstrFilterString)
{
hr = pWiaItem2->GetExtension(0,
bstrFilterString,
IID_IWiaSegmentationFilter,
(void**)&pSegFilter);
SysFreeString(bstrFilterString);
bstrFilterString = NULL;
}
else
{
hr = E_OUTOFMEMORY;
}
}
if (SUCCEEDED(hr))
{
*ppSegmentationFilter = pSegFilter;
pSegFilter = NULL;
}
return hr;
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows Vista [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2008 [仅限桌面应用] |
标头 |
|
IDL |
|