SCardUIDlgSelectCardW, fonction (winscard.h)
La fonction SCardUIDlgSelectCard affiche la boîte de dialogue carte à puce Sélectionner une carte.
Syntaxe
LONG SCardUIDlgSelectCardW(
[in] LPOPENCARDNAMEW_EX unnamedParam1
);
Paramètres
[in] unnamedParam1
Pointeur vers la structure OPENCARDNAME_EX de la boîte de dialogue Sélectionner une carte.
Valeur de retour
Si la fonction affiche correctement la boîte de dialogue Sélectionner une carte, la valeur de retour est SCARD_S_SUCCESS.
Si la fonction échoue, elle retourne un code d’erreur. Pour plus d’informations, consultez valeurs de retour de carte à puce.
Remarques
La fonction SCardUIDlgSelectCard fournit une méthode permettant de se connecter à une carte à puce spécifique. Quand elle est appelée, cette fonction effectue une recherche de cartes à puce appropriées correspondant au membre OPENCARD_SEARCH_CRITERIA spécifié par le paramètre pDlgStruc. Selon le
Valeur | Action |
---|---|
SC_DLG_FORCE_UI | Se connecte à la carte sélectionnée par l’utilisateur à partir de la carte à puce boîte de dialogue Sélectionner une carte. |
SC_DLG_MINIMAL_UI | Sélectionne la carte à puce si une seule carte à puce répond aux critères ou retourne des informations sur la sélection de l’utilisateur si plusieurs cartes à puce répondent aux critères. |
SC_DLG_NO_UI | Sélectionne la première carte disponible. |
Cette fonction remplace GetOpenCardName. La fonction GetOpenCardName est maintenue pour une compatibilité descendante avec la version 1.0 des composants de base de carte à puce Microsoft.
Exemples
L’exemple suivant montre comment afficher la carte à puce boîte de dialogue Sélectionner une carte.
SCARDCONTEXT hSC;
OPENCARDNAME_EX dlgStruct;
WCHAR szReader[256];
WCHAR szCard[256];
LONG lReturn;
// Establish a context.
// It will be assigned to the structure's hSCardContext field.
lReturn = SCardEstablishContext(SCARD_SCOPE_USER,
NULL,
NULL,
&hSC );
if ( SCARD_S_SUCCESS != lReturn )
{
printf("Failed SCardEstablishContext\n");
exit(1);
}
// Initialize the structure.
memset(&dlgStruct, 0, sizeof(dlgStruct));
dlgStruct.dwStructSize = sizeof(dlgStruct);
dlgStruct.hSCardContext = hSC;
dlgStruct.dwFlags = SC_DLG_FORCE_UI;
dlgStruct.lpstrRdr = (LPSTR) szReader;
dlgStruct.nMaxRdr = 256;
dlgStruct.lpstrCard = (LPSTR) szCard;
dlgStruct.nMaxCard = 256;
dlgStruct.lpstrTitle = (LPSTR) "My Select Card Title";
// Display the select card dialog box.
lReturn = SCardUIDlgSelectCard(&dlgStruct);
if ( SCARD_S_SUCCESS != lReturn )
printf("Failed SCardUIDlgSelectCard - %x\n", lReturn );
else
printf("Reader: %S\nCard: %S\n", szReader, szCard );
// Release the context (by SCardReleaseContext - not shown here).
Note
L’en-tête winscard.h définit SCardUIDlgSelectCard comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows XP [applications de bureau uniquement] |
serveur minimum pris en charge | Windows Server 2003 [applications de bureau uniquement] |
plateforme cible | Windows |
d’en-tête | winscard.h |
bibliothèque | Scarddlg.lib |
DLL | Scarddlg.dll |