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 [仅限桌面应用]
标头
Wia.h
IDL
Wia.idl