IWiaItem2::GetExtension (método)

Obtiene las interfaces de extensión que pueden venir con un controlador de dispositivo windows Image Acquisition (WIA) 2.0.

Sintaxis

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

Parámetros

lFlags [in]

Tipo: LONG

Actualmente no se usa. Debe establecerse como cero.

bstrName [in]

Tipo: BSTR

Especifica el nombre de la extensión a la que la aplicación que llama requiere un puntero.

SegmentationFilter

Extensión de filtro de segmentación. Actualmente es el único valor válido para este parámetro.

riidExtensionInterface [in]

Tipo: REFIID

Especifica el identificador de la interfaz de extensión.

ppOut [out]

Tipo: VOID**

Recibe la dirección de un puntero a la interfaz de extensión.

Valor devuelto

Tipo: HRESULT

Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error HRESULT .

Comentarios

Una aplicación invoca este método para crear un objeto de extensión que implemente una de las interfaces de extensión del controlador WIA 2.0. IWiaItem2::GetExtension almacena la dirección de la interfaz de extensión del objeto de extensión en el parámetro riidExtensionInterface . A continuación, la aplicación usa el puntero de interfaz para llamar a sus métodos.

Las aplicaciones deben llamar al método IUnknown::Release en los punteros de interfaz que reciben a través del parámetro riidExtensionInterface .

Ejemplos

CreateSegmentationFilter crea una instancia del filtro de segmentación del controlador (IWiaSegmentationFilter) llamando a IWiaItem2::GetExtension en la interfaz IWiaItem2 pasada.

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 Value
Cliente mínimo compatible
Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2008 [solo aplicaciones de escritorio]
Encabezado
Wia.h
IDL
Wia.idl