Condividi tramite


Metodo IWiaItem2::GetExtension

Ottiene le interfacce di estensione che potrebbero essere fornite con un driver di dispositivo Windows Image Acquisition (WIA) 2.0.

Sintassi

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

Parametri

lFlags [in]

Tipo: LONG

Attualmente inutilizzato. Deve essere impostato su zero.

bstrName [in]

Tipo: BSTR

Specifica il nome dell'estensione a cui l'applicazione chiamante richiede un puntatore.

SegmentationFilter

Estensione del filtro di segmentazione. Questo è attualmente l'unico valore valido per questo parametro.

riidExtensionInterface [in]

Tipo: REFIID

Specifica l'identificatore dell'interfaccia di estensione.

ppOut [out]

Tipo: VOID**

Riceve l'indirizzo di un puntatore all'interfaccia dell'estensione.

Valore restituito

Tipo: HRESULT

Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

Un'applicazione richiama questo metodo per creare un oggetto di estensione che implementa una delle interfacce di estensione del driver WIA 2.0. IWiaItem2::GetExtension archivia l'indirizzo dell'interfaccia di estensione dell'oggetto estensione nel parametro riidExtensionInterface . L'applicazione usa quindi il puntatore dell'interfaccia per chiamare i relativi metodi.

Le applicazioni devono chiamare il metodo IUnknown::Release nei puntatori di interfaccia ricevuti tramite il parametro riidExtensionInterface .

Esempio

CreateSegmentationFilter crea un'istanza del filtro di segmentazione del driver (IWiaSegmentationFilter) chiamando IWiaItem2::GetExtension nell'interfaccia IWiaItem2 passata.

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

Requisiti

Requisito Valore
Client minimo supportato
Windows Vista [solo app desktop]
Server minimo supportato
Windows Server 2008 [solo app desktop]
Intestazione
Wia.h
IDL
Wia.idl