Share via


structure OPENCARDNAME_EXA (winscard.h)

La structure OPENCARDNAME_EX contient les informations que la fonction SCardUIDlgSelectCard utilise pour initialiser une boîte de dialogue Sélectionner une carte intelligente carte.

Syntaxe

typedef struct {
  DWORD                      dwStructSize;
  SCARDCONTEXT               hSCardContext;
  HWND                       hwndOwner;
  DWORD                      dwFlags;
  LPCSTR                     lpstrTitle;
  LPCSTR                     lpstrSearchDesc;
  HICON                      hIcon;
  POPENCARD_SEARCH_CRITERIAA pOpenCardSearchCriteria;
  LPOCNCONNPROCA             lpfnConnect;
  LPVOID                     pvUserData;
  DWORD                      dwShareMode;
  DWORD                      dwPreferredProtocols;
  LPSTR                      lpstrRdr;
  DWORD                      nMaxRdr;
  LPSTR                      lpstrCard;
  DWORD                      nMaxCard;
  DWORD                      dwActiveProtocol;
  SCARDHANDLE                hCardHandle;
} OPENCARDNAME_EXA, *POPENCARDNAME_EXA, *LPOPENCARDNAME_EXA;

Membres

dwStructSize

Longueur, en octets, de la structure. La valeur de ce membre ne doit pas être NULL.

hSCardContext

Contexte utilisé pour la communication avec le gestionnaire smart carteresource. Appelez SCardEstablishContext pour définir le contexte resource manager et SCardReleaseContext pour le libérer. La valeur de ce membre ne doit pas être NULL.

hwndOwner

Fenêtre qui possède la boîte de dialogue. Ce membre peut être n’importe quel handle de fenêtre valide, ou il peut être NULL pour le bureau par défaut.

dwFlags

Ensemble d’indicateurs de bits que vous pouvez utiliser pour initialiser la boîte de dialogue. Lorsque la boîte de dialogue retourne, elle définit ces indicateurs pour indiquer l’entrée de l’utilisateur. Ce membre peut être l’un des indicateurs suivants.

Valeur Signification
SC_DLG_MINIMAL_UI
Affichez la boîte de dialogue uniquement si le carte recherché par l’application appelante ne se trouve pas et peut être utilisé dans un lecteur. Cela permet de trouver le carte, de se connecter (via le mécanisme de boîte de dialogue interne ou les fonctions de rappel utilisateur) et de retourner à l’application appelante.
SC_DLG_NO_UI
Ne pas afficher l’interface utilisateursélectionner une carte, quel que soit le résultat de la recherche.
SC_DLG_FORCE_UI
Forcer l’affichage de l’interface utilisateur Sélectionner une carte , quel que soit le résultat de la recherche.

lpstrTitle

Pointeur vers une chaîne à placer dans la barre de titre de la boîte de dialogue. Si ce membre a la valeur NULL, le système utilise le titre par défaut « Sélectionner la carte : ».

lpstrSearchDesc

Pointeur vers une chaîne à afficher pour l’utilisateur en tant qu’invite à insérer le carte intelligent. Si ce membre a la valeur NULL, le système utilise le texte par défaut « Veuillez insérer un carte intelligent ».

hIcon

Handle d’une icône (32 x 32 pixels). Vous pouvez spécifier une icône spécifique au fournisseur à afficher dans la boîte de dialogue. Si cette valeur a la valeur NULL, une icône générique, intelligente carte chargée du lecteur s’affiche.

pOpenCardSearchCriteria

Pointeur vers la structure OPENCARD_SEARCH_CRITERIA à utiliser, ou NULL, si elle n’est pas utilisée.

lpfnConnect

Pointeur vers la routine de connexion carte de l’appelant. Si l’appelant doit effectuer un traitement supplémentaire pour se connecter au carte, ce pointeur de fonction est défini sur la fonction de connexion de l’utilisateur. Si la fonction de connexion réussit, le carte reste connecté et initialisé, et le carte handle est retourné.

Le prototype de la routine de connexion est le suivant.

Connect(
  hSCardContext,  // the card context passed in the parameter block
  szReader,       // the name of the reader
  mszCards,       // multiple string that contains the possible 
                  //  card names in the reader
  pvUserData      // pointer to user data passed in parameter block
);

pvUserData

Pointeur void vers les données utilisateur. Ce pointeur est renvoyé à l’appelant sur la routine Connect.

dwShareMode

Si lpfnConnect n’a pas la valeur NULL, les membres dwShareMode et dwPreferredProtocols sont ignorés. Si lpfnConnect a la valeur NULL et que dwShareMode est différent de zéro, un appel interne est effectué à SCardConnect qui utilise dwShareMode et dwPreferredProtocols comme paramètres dwShareMode et dwPreferredProtocols . Si la connexion réussit, hCardHandle est défini sur le handle retourné par SCardConnect. Si lpfnConnect a la valeur NULL et que dwShareMode a la valeur zéro, hCardHandle a la valeur NULL.

dwPreferredProtocols

Utilisé pour la connexion interne comme décrit dans dwShareMode.

lpstrRdr

Si le carte se trouve, la mémoire tampon lpstrRdr contient le nom du lecteur qui contient le carte situé. La mémoire tampon doit comporter au moins 256 caractères.

nMaxRdr

Taille, en octets (version ANSI) ou en caractères (version Unicode ), de la mémoire tampon pointée vers lpstrRdr. Si la mémoire tampon est trop petite pour contenir les informations du lecteur, SCardUIDlgSelectCard retourne SCARD_E_NO_MEMORY et la taille requise de la mémoire tampon pointée vers lpstrRdr.

lpstrCard

Si le carte se trouve, la mémoire tampon lpstrCard contient le nom du carte situé. La mémoire tampon doit comporter au moins 256 caractères.

nMaxCard

Taille, en octets (version ANSI) ou en caractères (version Unicode ), de la mémoire tampon pointée vers lpstrCard. Si la mémoire tampon est trop petite pour contenir les informations carte, SCardUIDlgSelectCard retourne SCARD_E_NO_MEMORY et la taille requise de la mémoire tampon dans nMaxCard.

dwActiveProtocol

Protocole réel utilisé lorsque la boîte de dialogue établit une connexion à un carte.

hCardHandle

Handle du carte connecté (via une connexion de boîte de dialogue interne ou un rappel lpfnConnect).

Remarques

Notes

L’en-tête winscard.h définit OPENCARDNAME_EX 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]
En-tête winscard.h

Voir aussi

SCardConnect

SCardEstablishContext

SCardReleaseContext

SCardUIDlgSelectCard

Valeurs de retour de carte à puce