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