Share via


Fonction SCardUIDlgSelectCardA (winscard.h)

La fonction SCardUIDlgSelectCard affiche la carte intelligente boîte de dialogue Sélectionner une carte.

Syntaxe

LONG SCardUIDlgSelectCardA(
  [in] LPOPENCARDNAMEA_EX unnamedParam1
);

Paramètres

[in] unnamedParam1

Pointeur vers la structure OPENCARDNAME_EX de la boîte de dialogue Sélectionner une carte .

Valeur retournée

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 de connexion à un carte intelligent spécifique. Lorsqu’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 . En fonction du membre dwFlags de pDlgStruc, cette fonction effectue les actions suivantes.

Valeur Action
SC_DLG_FORCE_UI Se connecte au carte sélectionné par l’utilisateur à partir de la boîte de dialogue smart carte Sélectionner une carte.
SC_DLG_MINIMAL_UI Sélectionne le carte intelligent si une seule carte intelligente répond aux critères, ou retourne des informations sur la sélection de l’utilisateur si plusieurs carte intelligents répondent aux critères.
SC_DLG_NO_UI Sélectionne la première carte disponible.
 

Cette fonction remplace GetOpenCardName. La fonction GetOpenCardName est conservée à des fins de compatibilité descendante avec la version 1.0 des composants de base de la carte à puce Microsoft.

Exemples

L’exemple suivant montre comment afficher la boîte de dialogue Smart carte 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).

Notes

L’en-tête winscard.h définit SCardUIDlgSelectCard comme un 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.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winscard.h
Bibliothèque Scarddlg.lib
DLL Scarddlg.dll

Voir aussi

OPENCARDNAME_EX