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