Metode IWiaItem2::GetExtension

Mendapatkan antarmuka ekstensi yang mungkin disertakan dengan driver perangkat Windows Image Acquisition (WIA) 2.0.

Sintaks

HRESULT GetExtension(
  [in]  LONG   lFlags,
  [in]  BSTR   bstrName,
  [in]  REFIID riidExtensionInterface,
  [out] VOID   **ppOut
);

Parameter

lFlags [in]

Jenis: LONG

Saat ini tidak digunakan. Harus diatur ke nol.

bstrName [in]

Jenis: BSTR

Menentukan nama ekstensi yang memerlukan penunjuk oleh aplikasi panggilan.

SegmentationFilter

Ekstensi filter segmentasi. Saat ini ini adalah satu-satunya nilai yang valid untuk parameter ini.

riidExtensionInterface [in]

Jenis: REFIID

Menentukan pengidentifikasi antarmuka ekstensi.

ppOut [out]

Jenis: VOID**

Menerima alamat pointer ke antarmuka ekstensi.

Menampilkan nilai

Jenis: HRESULT

Jika metode ini berhasil, metode akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.

Keterangan

Aplikasi memanggil metode ini untuk membuat objek ekstensi yang mengimplementasikan salah satu antarmuka ekstensi driver WIA 2.0. IWiaItem2::GetExtension menyimpan alamat antarmuka ekstensi objek ekstensi dalam parameter riidExtensionInterface . Aplikasi kemudian menggunakan penunjuk antarmuka untuk memanggil metodenya.

Aplikasi harus memanggil metode IUnknown::Release pada pointer antarmuka yang mereka terima melalui parameter riidExtensionInterface .

Contoh

CreateSegmentationFilter membuat instans filter segmentasi driver (IWiaSegmentationFilter) dengan memanggil IWiaItem2::GetExtension pada antarmuka IWiaItem2 yang diteruskan.

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;
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung
Windows Server 2008 [hanya aplikasi desktop]
Header
Wia.h
IDL
Wia.idl