Freigeben über


IWiaItem2::GetExtension-Methode

Ruft die Erweiterungsschnittstellen ab, die möglicherweise mit einem Windows Image Acquisition (WIA) 2.0-Gerätetreiber enthalten sind.

Syntax

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

Parameter

lFlags [in]

Typ: LONG

Derzeit nicht verwendet. Sollte auf Null festgelegt werden.

bstrName [in]

Typ: BSTR

Gibt den Namen der Erweiterung an, auf die die aufrufende Anwendung einen Zeiger erfordert.

SegmentationFilter

Die Segmentierungsfiltererweiterung. Dies ist derzeit der einzige gültige Wert für diesen Parameter.

riidExtensionInterface [in]

Typ: REFIID

Gibt den Bezeichner der Erweiterungsschnittstelle an.

ppOut [out]

Typ: VOID**

Empfängt die Adresse eines Zeigers auf die Erweiterungsschnittstelle.

Rückgabewert

Typ: HRESULT

Wenn diese Methode erfolgreich ist, gibt sie S_OK zurück. Andernfalls wird ein HRESULT-Fehlercode zurückgegeben.

Bemerkungen

Eine Anwendung ruft diese Methode auf, um ein Erweiterungsobjekt zu erstellen, das eine der WIA 2.0-Treibererweiterungsschnittstellen implementiert. IWiaItem2::GetExtension speichert die Adresse der Erweiterungsschnittstelle des Erweiterungsobjekts im parameter riidExtensionInterface . Die Anwendung verwendet dann den Schnittstellenzeiger, um ihre Methoden aufzurufen.

Anwendungen müssen die IUnknown::Release-Methode für die Schnittstellenzeiger aufrufen, die sie über den riidExtensionInterface-Parameter empfangen.

Beispiele

CreateSegmentationFilter erstellt eine instance des Segmentierungsfilters (IWiaSegmentationFilter) des Treibers, indem IWiaItem2::GetExtension auf der übergebenenIWiaItem2-Schnittstelle aufgerufen wird.

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2008 [nur Desktop-Apps]
Header
Wia.h
IDL
Wia.idl