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 |