Partager via


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 ledwFlags membre de pDlgStruc, cette fonction effectue les actions suivantes.

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

Voir aussi

OPENCARDNAME_EX