Interfaz de usuario de tarjeta inteligente
La interfaz de usuario (UI) de la tarjeta inteligente es un único cuadro de diálogo común que permite al usuario especificar o buscar una tarjeta inteligente que se abra (es decir, conectarse a una aplicación y usarla).
A continuación se muestran dos maneras de usar el cuadro de diálogo común. Ambos asumen que se mostrará la interfaz de usuario del cuadro de diálogo. Para obtener más información, vea OPENCARDNAME.
Para seleccionar una tarjeta inteligente que se va a abrir
- Declare una variable de tipo OPENCARDNAME.
- Proporcione suficiente información en el cuadro de diálogo común para restringir la búsqueda de una tarjeta inteligente que busca la aplicación que realiza la llamada. Esto incluye especificar lpstrGroupNames, lpstrCardNames y rgguidInterfaces. Esto también incluye especificar un modo de recurso compartido preferido y un protocolo que se usará cuando el cuadro de diálogo común se conecte a la tarjeta mediante los miembros dwShareMode y dwPreferredProtocols de la estructura OPENCARDNAME .
- Llame a la función GetOpenCardName para mostrar el cuadro de diálogo común al usuario. Se mostrará una línea de información de ayuda simple y, si se encuentra una de las tarjetas solicitadas, la tarjeta se resaltará en la pantalla. Para varias búsquedas de nombres de tarjeta, se resaltará el primer lector que contiene una de las tarjetas preferidas.
- A continuación, el usuario selecciona una tarjeta, hace clic en Aceptar y se conecta a la tarjeta inteligente.
Para buscar una tarjeta específica
Declare una variable de tipo OPENCARDNAME.
Proporcione suficiente información en el cuadro de diálogo común para restringir la búsqueda de una tarjeta inteligente que busca la aplicación que realiza la llamada. Esto incluye especificar lpstrGroupNames, lpstrCardNames y rgguidInterfaces.
Cree las funciones de devolución de llamada Connect, Check y Disconnect y establezca los miembros de datos lpfnConnect, lpfnCheck y lpfnDisconnect correctamente.
Nota
Las tres funciones y miembros deben estar disponibles al usar el cuadro de diálogo común de esta manera.
Llame a la función común del cuadro de diálogo GetOpenCardName .
A continuación, el cuadro de diálogo común buscará las tarjetas solicitadas. Si se encuentra un nombre de tarjeta coincidente o una cadena ATR , se llamará a las funciones de devolución de llamada Connect, Check y Disconnect en secuencia. Si una tarjeta pasa la rutina Check (es decir, la devolución de llamada Check devuelve TRUE), esta tarjeta se resalta en la pantalla al usuario.
Nota
Si se proporcionan varios nombres de tarjeta, el primer lector que contiene una de las tarjetas solicitadas y pasa la rutina Check será la tarjeta seleccionada.
Si no se encuentran coincidencias, aparecerá un cuadro de diálogo común.