Funzione SCardUIDlgSelectCardW (winscard.h)
La funzione SCardUIDlgSelectCard visualizza la finestra di dialogo Seleziona scheda smart card.
Sintassi
LONG SCardUIDlgSelectCardW(
[in] LPOPENCARDNAMEW_EX unnamedParam1
);
Parametri
[in] unnamedParam1
Puntatore alla struttura OPENCARDNAME_EX per la finestra di dialogo Seleziona scheda .
Valore restituito
Se la funzione visualizza correttamente la finestra di dialogo Seleziona scheda , il valore restituito è SCARD_S_SUCCESS.
Se la funzione non viene completata, restituisce un codice di errore. Per altre informazioni, vedere Valori restituiti della smart card.
Commenti
La funzione SCardUIDlgSelectCard fornisce un metodo per la connessione a una smart card specifica. Quando viene chiamato, questa funzione esegue una ricerca delle smart card appropriate corrispondenti al membro OPENCARD_SEARCH_CRITERIA specificato dal parametro pDlgStruc . A seconda del membro dwFlags di pDlgStruc, questa funzione esegue le azioni seguenti.
Valore | Azione |
---|---|
SC_DLG_FORCE_UI | Consente di connettersi alla scheda selezionata dall'utente dalla finestra di dialogo Seleziona scheda smart card . |
SC_DLG_MINIMAL_UI | Seleziona la smart card se una sola smart card soddisfa i criteri oppure restituisce informazioni sulla selezione dell'utente se più smart card soddisfano i criteri. |
SC_DLG_NO_UI | Seleziona la prima scheda disponibile. |
Questa funzione sostituisce GetOpenCardName. La funzione GetOpenCardName viene mantenuta per la compatibilità con le versioni precedenti con la versione 1.0 dei componenti di base della smart card Microsoft.
Esempio
Nell'esempio seguente viene illustrato come visualizzare la finestra di dialogo Seleziona scheda smart card .
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).
Nota
L'intestazione winscard.h definisce SCardUIDlgSelectCard come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winscard.h |
Libreria | Scarddlg.lib |
DLL | Scarddlg.dll |