Méthode IWiaItem2::GetExtension
Obtient les interfaces d’extension qui peuvent être fournies avec un pilote de périphérique d’acquisition d’images Windows (WIA) 2.0.
Syntaxe
HRESULT GetExtension(
[in] LONG lFlags,
[in] BSTR bstrName,
[in] REFIID riidExtensionInterface,
[out] VOID **ppOut
);
Paramètres
-
lFlags [in]
-
Type : LONG
Actuellement inutilisé. Doit être défini sur zéro (0).
-
bstrName [in]
-
Type : BSTR
Spécifie le nom de l’extension vers laquelle l’application appelante nécessite un pointeur.
-
SegmentationFilter
-
Extension de filtre de segmentation. Il s’agit actuellement de la seule valeur valide pour ce paramètre.
riidExtensionInterface [in]
Type : REFIID
Spécifie l’identificateur de l’interface d’extension.
ppOut [out]
Type : VOID**
Reçoit l’adresse d’un pointeur vers l’interface d’extension.
Valeur retournée
Type : HRESULT
Si cette méthode réussit, elle retourne S_OK. Sinon, il retourne un code d’erreur HRESULT .
Notes
Une application appelle cette méthode pour créer un objet d’extension implémentant l’une des interfaces d’extension de pilote WIA 2.0. IWiaItem2::GetExtension stocke l’adresse de l’interface d’extension de l’objet d’extension dans le paramètre riidExtensionInterface . L’application utilise ensuite le pointeur d’interface pour appeler ses méthodes.
Les applications doivent appeler la méthode IUnknown::Release sur les pointeurs d’interface qu’elles reçoivent via le paramètre riidExtensionInterface .
Exemples
CreateSegmentationFilter crée une instance du filtre de segmentation du pilote (IWiaSegmentationFilter) en appelant IWiaItem2::GetExtension sur l’interface IWiaItem2 transmise.
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;
}
Spécifications
Condition requise | Valeur |
---|---|
Client minimal pris en charge |
Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge |
Windows Server 2008 [applications de bureau uniquement] |
En-tête |
|
IDL |
|