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 |
|
IDL |
|