Funzione SCardUIDlgSelectCardA (winscard.h)

La funzione SCardUIDlgSelectCard visualizza la finestra di dialogo Seleziona scheda smart card.

Sintassi

LONG SCardUIDlgSelectCardA(
  [in] LPOPENCARDNAMEA_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

Vedi anche

OPENCARDNAME_EX