OPENCARDNAME_EXW struttura (winscard.h)
La struttura OPENCARDNAME_EX contiene le informazioni usate dalla funzione SCardUIDlgSelectCard per inizializzare una finestra di dialogo Seleziona scheda smart card .
Sintassi
typedef struct {
DWORD dwStructSize;
SCARDCONTEXT hSCardContext;
HWND hwndOwner;
DWORD dwFlags;
LPCWSTR lpstrTitle;
LPCWSTR lpstrSearchDesc;
HICON hIcon;
POPENCARD_SEARCH_CRITERIAW pOpenCardSearchCriteria;
LPOCNCONNPROCW lpfnConnect;
LPVOID pvUserData;
DWORD dwShareMode;
DWORD dwPreferredProtocols;
LPWSTR lpstrRdr;
DWORD nMaxRdr;
LPWSTR lpstrCard;
DWORD nMaxCard;
DWORD dwActiveProtocol;
SCARDHANDLE hCardHandle;
} OPENCARDNAME_EXW, *POPENCARDNAME_EXW, *LPOPENCARDNAME_EXW;
Members
dwStructSize
Lunghezza, in byte, della struttura. Il valore di questo membro non deve essere NULL.
hSCardContext
Contesto usato per la comunicazione con smart cardresource manager. Chiamare SCardEstablishContext per impostare il contesto di Resource Manager e SCardReleaseContext per rilasciarlo. Il valore di questo membro non deve essere NULL.
hwndOwner
Finestra proprietaria della finestra di dialogo. Questo membro può essere qualsiasi handle di finestra valido oppure può essere NULL per il desktop predefinito.
dwFlags
Set di flag di bit che è possibile usare per inizializzare la finestra di dialogo. Quando la finestra di dialogo restituisce, imposta questi flag per indicare l'input dell'utente. Questo membro può essere uno dei flag seguenti.
Valore | Significato |
---|---|
|
Visualizzare la finestra di dialogo solo se la scheda cercata dall'applicazione chiamante non si trova e è disponibile per l'uso in un lettore. In questo modo la scheda viene trovata, connessa (tramite il meccanismo della finestra di dialogo interna o le funzioni di callback utente) e restituita all'applicazione chiamante. |
|
Forzare nessuna visualizzazione dell'interfaccia utenteSelect Card (UI), indipendentemente dal risultato della ricerca. |
|
Forzare la visualizzazione dell'interfaccia utente seleziona scheda , indipendentemente dal risultato della ricerca. |
lpstrTitle
Puntatore a una stringa da inserire nella barra del titolo della finestra di dialogo. Se questo membro è NULL, il sistema usa il titolo predefinito "Seleziona scheda:".
lpstrSearchDesc
Puntatore a una stringa da visualizzare all'utente come richiesta di inserire la smart card. Se questo membro è NULL, il sistema usa il testo predefinito "Inserisci una smart card".
hIcon
Handle a un'icona (32 x 32 pixel). È possibile specificare un'icona specifica del fornitore da visualizzare nella finestra di dialogo. Se questo valore è NULL, viene visualizzata un'icona di lettura smart card caricata generica.
pOpenCardSearchCriteria
Puntatore alla struttura OPENCARD_SEARCH_CRITERIA da usare o NULL, se non viene usato.
lpfnConnect
Un puntatore alla routine di connessione della scheda del chiamante. Se il chiamante deve eseguire un'elaborazione aggiuntiva per connettersi alla scheda, questo puntatore alla funzione di connessione dell'utente è impostato. Se la funzione di connessione ha esito positivo, la scheda viene lasciata connessa e inizializzata e viene restituito l'handle della scheda.
Il prototipo per la routine di connessione è il seguente.
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
Puntatore void ai dati utente. Questo puntatore viene passato al chiamante nella routine Connect.
dwShareMode
Se lpfnConnect non è NULL, i membri dwShareMode e dwPreferredProtocols vengono ignorati . Se lpfnConnect è NULL e dwShareMode non è zero, viene eseguita una chiamata interna a SCardConnect che usa dwShareMode e dwPreferredProtocols come parametri dwShareMode e dwPreferredProtocols . Se la connessione ha esito positivo, hCardHandle è impostato sull'handle restituito da SCardConnect. Se lpfnConnect è NULL e dwShareMode è zero, hCardHandle è impostato su NULL.
dwPreferredProtocols
Usato per la connessione interna come descritto in dwShareMode.
lpstrRdr
Se la scheda si trova, il buffer lpstrRdr contiene il nome del lettore che contiene la scheda situata. Il buffer deve essere di almeno 256 caratteri.
nMaxRdr
Dimensioni, in byte (versione ANSI) o caratteri (versione Unicode ) del buffer a cui punta lpstrRdr. Se il buffer è troppo piccolo per contenere le informazioni sul lettore, SCardUIDlgSelectCard restituisce SCARD_E_NO_MEMORY e le dimensioni necessarie del buffer a cui punta lpstrRdr.
lpstrCard
Se la scheda si trova, il buffer lpstrCard contiene il nome della scheda situata. Il buffer deve essere di almeno 256 caratteri.
nMaxCard
Dimensioni, in byte (versione ANSI) o caratteri (versione Unicode ) del buffer a cui punta lpstrCard. Se il buffer è troppo piccolo per contenere le informazioni sulla scheda, SCardUIDlgSelectCard restituisce SCARD_E_NO_MEMORY e le dimensioni necessarie del buffer in nMaxCard.
dwActiveProtocol
Il protocollo effettivo in uso quando la finestra di dialogo effettua una connessione a una scheda.
hCardHandle
Handle della scheda connessa (tramite una finestra di dialogo interna connettersi o un callback lpfnConnect ).
Commenti
Nota
L'intestazione winscard.h definisce OPENCARDNAME_EX come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
Requisiti
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Intestazione | winscard.h |