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