IWiaItem2::GetExtension-Methode

Ruft die Erweiterungsschnittstellen ab, die mit einem WIA 2.0-Gerätetreiber (Windows Image Acquisition) verbunden sein können.

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, wird S _ OK zurückgegeben. Andernfalls wird ein HRESULT-Fehlercode zurückgegeben.

Hinweise

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 riidExtensionInterface-Parameter. Die Anwendung verwendet dann den Schnittstellenzeiger zum Aufrufen ihrer Methoden.

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

Beispiele

CreateSegmentationFilter erstellt eine Instanz des Segmentierungsfilters des Treibers (IWiaSegmentationFilter), indem IWiaItem2::GetExtension auf der übergebenen IWiaItem2-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 Nur [ Vista-Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Nur Server [ 2008-Desktop-Apps]
Header
Wia.h
IDL
Wia.idl