Compartilhar via


Método IWiaItem2::GetExtension

Obtém as interfaces de extensão que podem vir com um driver de dispositivo WIA (Aquisição de Imagem do Windows) 2.0.

Sintaxe

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

Parâmetros

lFlags [in]

Tipo: LONG

Atualmente não utilizado. Deve ser definido como zero.

bstrName [in]

Tipo: BSTR

Especifica o nome da extensão para a qual o aplicativo de chamada requer um ponteiro.

SegmentationFilter

A extensão de filtro de segmentação. Atualmente, esse é o único valor válido para esse parâmetro.

riidExtensionInterface [in]

Tipo: REFIID

Especifica o identificador da interface de extensão.

ppOut [out]

Tipo: VOID**

Recebe o endereço de um ponteiro para a interface de extensão.

Valor retornado

Tipo: HRESULT

Se esse método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT .

Comentários

Um aplicativo invoca esse método para criar um objeto de extensão implementando uma das interfaces de extensão de driver WIA 2.0. IWiaItem2::GetExtension armazena o endereço da interface de extensão do objeto de extensão no parâmetro riidExtensionInterface . Em seguida, o aplicativo usa o ponteiro de interface para chamar seus métodos.

Os aplicativos devem chamar o método IUnknown::Release nos ponteiros de interface que recebem por meio do parâmetro riidExtensionInterface .

Exemplos

CreateSegmentationFilter cria uma instância do filtro de segmentação do driver (IWiaSegmentationFilter) chamando IWiaItem2::GetExtension na interface IWiaItem2 passada.

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

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2008 [somente aplicativos da área de trabalho]
Cabeçalho
Wia.h
IDL
Wia.idl