Création d’un Gestionnaire de périphériques WIA
La première étape de l’utilisation des services d’acquisition d’images Windows (WIA) consiste à obtenir un pointeur d’interface IWiaDevMgr (si vous programmez pour Windows XP ou une version antérieure) ou un pointeur d’interface IWiaDevMgr2 (si vous programmationz pour Windows Vista ou version ultérieure). Pour ce faire, appelez CoCreateInstance avec les paramètres appropriés. L’exemple d’application WiaSSamp crée un gestionnaire de périphériques dans une fonction globale implémentée par le code suivant :
HRESULT CreateWiaDeviceManager( IWiaDevMgr **ppWiaDevMgr ) //XP or earlier
HRESULT CreateWiaDeviceManager( IWiaDevMgr2 **ppWiaDevMgr ) //Vista or later
{
//
// Validate arguments
//
if (NULL == ppWiaDevMgr)
{
return E_INVALIDARG;
}
//
// Initialize out variables
//
*ppWiaDevMgr = NULL;
//
// Create an instance of the device manager
//
//XP or earlier:
HRESULT hr = CoCreateInstance( CLSID_WiaDevMgr, NULL, CLSCTX_LOCAL_SERVER, IID_IWiaDevMgr, (void**)ppWiaDevMgr );
//Vista or later:
HRESULT hr = CoCreateInstance( CLSID_WiaDevMgr2, NULL, CLSCTX_LOCAL_SERVER, IID_IWiaDevMgr2, (void**)ppWiaDevMgr );
//
// Return the result of creating the device manager
//
return hr;
}
Dans cet exemple, CLSID_WiaDevMgr et IID_IWiaDevMgr sont des constantes WIA qui représentent respectivement l’ID de classe et l’ID d’interface de IWiaDevMgr. CLSID_WiaDevMgr2 et IID_IWiaDevMgr2 sont des constantes WIA qui représentent respectivement l’ID de classe et l’ID d’interface de IWiaDevMgr2.
La valeur de l’argument dwClsContext de l’appel CoCreateInstance doit être CLSCTX_LOCAL_SERVER. Aucun autre type de serveur n’est pris en charge et com (Component Object Model) rejette toute autre valeur pour ce paramètre.