OPENCARDNAME_EXA-Struktur (winscard.h)

Die OPENCARDNAME_EX-Struktur enthält die Informationen, die die SCardUIDlgSelectCard-Funktion verwendet, um ein Smart Karte Dialogfeld Karte auswählen zu initialisieren.

Syntax

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;

Member

dwStructSize

Die Länge der Struktur in Bytes. Der Wert dieses Members darf nicht NULL sein.

hSCardContext

Der Kontext, der für die Kommunikation mit dem Smart KarteRessourcen-Manager verwendet wird. Rufen Sie SCardEstablishContext auf, um den Ressourcen-Manager-Kontext festzulegen, und SCardReleaseContext , um ihn freizugeben. Der Wert dieses Members darf nicht NULL sein.

hwndOwner

Das Fenster, das das Dialogfeld besitzt. Bei diesem Member kann es sich um ein beliebiges gültiges Fensterhandle oder um NULL für den Desktopstandard sein.

dwFlags

Eine Reihe von Bitflags, die Sie zum Initialisieren des Dialogfelds verwenden können. Wenn das Dialogfeld zurückgibt, legt es diese Flags fest, um die Eingabe des Benutzers anzugeben. Dieses Element kann eines der folgenden Flags sein.

Wert Bedeutung
SC_DLG_MINIMAL_UI
Zeigen Sie das Dialogfeld nur an, wenn die von der aufrufenden Anwendung gesuchte Karte nicht gefunden und für die Verwendung in einem Reader verfügbar ist. Dadurch kann die Karte gefunden, verbunden (entweder über den internen Dialogfeldmechanismus oder die Rückruffunktionen des Benutzers) und an die aufrufende Anwendung zurückgegeben werden.
SC_DLG_NO_UI
Erzwingen Sie, unabhängig vom Suchergebnis, keine Anzeige der Benutzeroberfläche "Karte auswählen".
SC_DLG_FORCE_UI
Erzwingen Sie die Anzeige der Benutzeroberfläche " Karte auswählen ", unabhängig vom Suchergebnis.

lpstrTitle

Ein Zeiger auf eine Zeichenfolge, die in der Titelleiste des Dialogfelds platziert werden soll. Wenn dieses Element NULL ist, verwendet das System den Standardtitel "Karte auswählen:".

lpstrSearchDesc

Ein Zeiger auf eine Zeichenfolge, die dem Benutzer als Aufforderung zum Einfügen des intelligenten Karte angezeigt werden soll. Wenn dieser Member NULL ist, verwendet das System den Standardtext "Bitte fügen Sie eine intelligente Karte ein".

hIcon

Ein Handle für ein Symbol (32 x 32 Pixel). Sie können ein herstellerspezifisches Symbol angeben, das im Dialogfeld angezeigt werden soll. Wenn dieser Wert NULL ist, wird ein generisches, intelligentes Karte vom Leser geladenes Symbol angezeigt.

pOpenCardSearchCriteria

Ein Zeiger auf die OPENCARD_SEARCH_CRITERIA zu verwendenden Struktur oder NULL, falls keines verwendet wird.

lpfnConnect

Ein Zeiger auf die Karte Verbindungsroutine des Aufrufers. Wenn der Aufrufer zusätzliche Verarbeitung ausführen muss, um eine Verbindung mit dem Karte herzustellen, wird dieser Funktionszeiger auf die Verbindungsfunktion des Benutzers festgelegt. Wenn die Verbindungsfunktion erfolgreich ist, bleibt die Karte verbunden und initialisiert, und das Karte Handle wird zurückgegeben.

Der Prototyp für die Connect-Routine sieht wie folgt aus.

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

Ein Void-Zeiger auf Benutzerdaten. Dieser Zeiger wird an den Aufrufer der Connect-Routine zurückgegeben.

dwShareMode

Wenn lpfnConnect nicht NULL ist, werden die Elemente dwShareMode und dwPreferredProtocols ignoriert. Wenn lpfnConnectNULL und dwShareMode nonzero ist, wird ein interner Aufruf von SCardConnect ausgeführt, der dwShareMode und dwPreferredProtocols als dwShareMode - und dwPreferredProtocols-Parameter verwendet. Wenn die Verbindung erfolgreich hergestellt wird, wird hCardHandle auf das von SCardConnect zurückgegebene Handle festgelegt. Wenn lpfnConnectNULL und dwShareMode null ist, wird hCardHandle auf NULL festgelegt.

dwPreferredProtocols

Wird für die interne Verbindung verwendet, wie in dwShareMode beschrieben.

lpstrRdr

Wenn sich die Karte befindet, enthält der lpstrRdr-Puffer den Namen des Lesers, der den Karte enthält. Der Puffer sollte mindestens 256 Zeichen lang sein.

nMaxRdr

Größe des Puffers in Bytes (ANSI-Version) oder Zeichen (Unicode-Version ), auf die von lpstrRdr verwiesen wird. Wenn der Puffer zu klein ist, um die Leserinformationen zu enthalten, gibt SCardUIDlgSelectCard SCARD_E_NO_MEMORY und die erforderliche Größe des Puffers zurück, auf den lpstrRdr verweist.

lpstrCard

Wenn sich die Karte befindet, enthält der lpstrCard-Puffer den Namen des Karte. Der Puffer sollte mindestens 256 Zeichen lang sein.

nMaxCard

Größe des Puffers in Bytes (ANSI-Version) oder Zeichen (Unicode-Version ), auf die von lpstrCard verwiesen wird. Wenn der Puffer zu klein ist, um die Karte Informationen zu enthalten, gibt SCardUIDlgSelectCard SCARD_E_NO_MEMORY und die erforderliche Größe des Puffers in nMaxCard zurück.

dwActiveProtocol

Das tatsächliche Protokoll, das verwendet wird, wenn das Dialogfeld eine Verbindung mit einem Karte herstellt.

hCardHandle

Ein Handle der verbundenen Karte (entweder über eine interne Dialogfeldverbindung oder einen lpfnConnect-Rückruf).

Hinweise

Hinweis

Der winscard.h-Header definiert OPENCARDNAME_EX als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Kopfzeile winscard.h

Weitere Informationen

SCardConnect

SCardEstablishContext

SCardReleaseContext

SCardUIDlgSelectCard

Smartcard-Rückgabewerte