Freigeben über


SCardUIDlgSelectCardA-Funktion (winscard.h)

Die SCardUIDlgSelectCard-Funktion zeigt das Dialogfeld Smart Karte Karte auswählen an.

Syntax

LONG SCardUIDlgSelectCardA(
  [in] LPOPENCARDNAMEA_EX unnamedParam1
);

Parameter

[in] unnamedParam1

Zeiger auf die OPENCARDNAME_EX-Struktur für das Dialogfeld Karte auswählen .

Rückgabewert

Wenn die Funktion das Dialogfeld Karte auswählen erfolgreich anzeigt, lautet der Rückgabewert SCARD_S_SUCCESS.

Wenn die Ausführung der Funktion fehlschlägt, wird ein Fehlercode zurückgegeben. Weitere Informationen finden Sie unter Smartcard-Rückgabewerte.

Hinweise

Die SCardUIDlgSelectCard-Funktion stellt eine Methode zum Herstellen einer Verbindung mit einer bestimmten intelligenten Karte bereit. Wenn diese Funktion aufgerufen wird, führt diese Funktion eine Suche nach geeigneten Smartcards durch, die dem durch den pDlgStruc-Parameter angegebenen OPENCARD_SEARCH_CRITERIA Member entsprechen. Abhängig vom dwFlags-Member von pDlgStruc führt diese Funktion die folgenden Aktionen aus.

Wert Aktion
SC_DLG_FORCE_UI Stellt eine Verbindung mit der Karte her, die der Benutzer im Dialogfeld Smart Karte Karte auswählen ausgewählt hat.
SC_DLG_MINIMAL_UI Wählt die intelligente Karte aus, wenn nur eine intelligente Karte die Kriterien erfüllt, oder gibt Informationen zur Auswahl des Benutzers zurück, wenn mehrere intelligente Karte die Kriterien erfüllen.
SC_DLG_NO_UI Wählt die erste verfügbare Karte aus.
 

Diese Funktion ersetzt GetOpenCardName. Die GetOpenCardName-Funktion wird aus Gründen der Abwärtskompatibilität mit Version 1.0 der Microsoft Smartcard-Basiskomponenten beibehalten.

Beispiele

Im folgenden Beispiel wird gezeigt, wie das Dialogfeld "Smart Karte Karte auswählen" angezeigt wird.

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).

Hinweis

Der winscard.h-Header definiert SCardUIDlgSelectCard 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 Code, der nicht Codierungsneutral ist, 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]
Zielplattform Windows
Kopfzeile winscard.h
Bibliothek Scarddlg.lib
DLL Scarddlg.dll

Weitere Informationen

OPENCARDNAME_EX