OPENCARDNAME_EXA estructura (winscard.h)

La estructura OPENCARDNAME_EX contiene la información que usa la función SCardUIDlgSelectCard para inicializar un cuadro de diálogo Seleccionar tarjeta inteligente.

Sintaxis

typedef struct {
  DWORD                      dwStructSize;
  SCARDCONTEXT               hSCardContext;
  HWND                       hwndOwner;
  DWORD                      dwFlags;
  LPCSTR                     lpstrTitle;
  LPCSTR                     lpstrSearchDesc;
  HICON                      hIcon;
  POPENCARD_SEARCH_CRITERIAA pOpenCardSearchCriteria;
  LPOCNCONNPROCA             lpfnConnect;
  LPVOID                     pvUserData;
  DWORD                      dwShareMode;
  DWORD                      dwPreferredProtocols;
  LPSTR                      lpstrRdr;
  DWORD                      nMaxRdr;
  LPSTR                      lpstrCard;
  DWORD                      nMaxCard;
  DWORD                      dwActiveProtocol;
  SCARDHANDLE                hCardHandle;
} OPENCARDNAME_EXA, *POPENCARDNAME_EXA, *LPOPENCARDNAME_EXA;

Miembros

dwStructSize

Longitud, en bytes, de la estructura. El valor de este miembro no debe ser NULL.

hSCardContext

Contexto utilizado para la comunicación con el administrador de recursos de tarjeta inteligente. Llame a SCardEstablishContext para establecer el contexto del administrador de recursos y SCardReleaseContext para liberarlo. El valor de este miembro no debe ser NULL.

hwndOwner

Ventana propietaria del cuadro de diálogo. Este miembro puede ser cualquier identificador de ventana válido o puede ser NULL para el valor predeterminado del escritorio.

dwFlags

Un conjunto de marcas de bits que puede usar para inicializar el cuadro de diálogo. Cuando se devuelve el cuadro de diálogo, establece estas marcas para indicar la entrada del usuario. Este miembro puede ser una de las siguientes marcas.

Valor Significado
SC_DLG_MINIMAL_UI
Muestre el cuadro de diálogo solo si la aplicación que realiza la llamada no encuentra la tarjeta que busca y está disponible para su uso en un lector. Esto permite encontrar la tarjeta, conectarse (ya sea a través del mecanismo del cuadro de diálogo interno o las funciones de devolución de llamada del usuario) y volver a la aplicación que realiza la llamada.
SC_DLG_NO_UI
Forzar ninguna presentación de la interfaz de usuario (UI) select card, independientemente del resultado de la búsqueda.
SC_DLG_FORCE_UI
Forzar la visualización de la interfaz de usuario seleccionar tarjeta , independientemente del resultado de la búsqueda.

lpstrTitle

Puntero a una cadena que se va a colocar en la barra de título del cuadro de diálogo. Si este miembro es NULL, el sistema usa el título predeterminado "Seleccionar tarjeta:".

lpstrSearchDesc

Puntero a una cadena que se va a mostrar al usuario como un mensaje para insertar la tarjeta inteligente. Si este miembro es NULL, el sistema usa el texto predeterminado "Inserte una tarjeta inteligente".

hIcon

Identificador de un icono (32 x 32 píxeles). Puede especificar un icono específico del proveedor para mostrarlo en el cuadro de diálogo. Si este valor es NULL, se muestra un icono genérico cargado por lector de tarjetas inteligentes.

pOpenCardSearchCriteria

Puntero a la estructura OPENCARD_SEARCH_CRITERIA que se va a usar, o NULL, si no se usa uno.

lpfnConnect

Puntero a la rutina de conexión de la tarjeta del autor de la llamada. Si el autor de la llamada necesita realizar un procesamiento adicional para conectarse a la tarjeta, este puntero de función se establece en la función connect del usuario. Si la función connect se realiza correctamente, la tarjeta se deja conectada e inicializada, y se devuelve el identificador de tarjeta.

El prototipo de la rutina de conexión es el siguiente.

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

Puntero void a los datos del usuario. Este puntero se devuelve al autor de la llamada en la rutina Connect.

dwShareMode

Si lpfnConnect no es NULL, se omiten los miembros dwShareMode y dwPreferredProtocols . Si lpfnConnect es NULL y dwShareMode es distinto de cero, se realiza una llamada interna a SCardConnect que usa dwShareMode y dwPreferredProtocols como parámetros dwShareMode y dwPreferredProtocols . Si la conexión se realiza correctamente, hCardHandle se establece en el identificador devuelto por SCardConnect. Si lpfnConnect es NULL y dwShareMode es cero, hCardHandle se establece en NULL.

dwPreferredProtocols

Se usa para la conexión interna como se describe en dwShareMode.

lpstrRdr

Si se encuentra la tarjeta, el búfer lpstrRdr contiene el nombre del lector que contiene la tarjeta ubicada. El búfer debe tener al menos 256 caracteres.

nMaxRdr

Tamaño, en bytes (versión ANSI) o caracteres (versión Unicode ), del búfer al que apunta lpstrRdr. Si el búfer es demasiado pequeño para contener la información del lector, SCardUIDlgSelectCard devuelve SCARD_E_NO_MEMORY y el tamaño necesario del búfer al que apunta lpstrRdr.

lpstrCard

Si se encuentra la tarjeta, el búfer lpstrCard contiene el nombre de la tarjeta ubicada. El búfer debe tener al menos 256 caracteres.

nMaxCard

Tamaño, en bytes (versión ANSI) o caracteres (versión Unicode ), del búfer al que apunta lpstrCard. Si el búfer es demasiado pequeño para contener la información de la tarjeta, SCardUIDlgSelectCard devuelve SCARD_E_NO_MEMORY y el tamaño necesario del búfer en nMaxCard.

dwActiveProtocol

Protocolo real en uso cuando el cuadro de diálogo realiza una conexión a una tarjeta.

hCardHandle

Identificador de la tarjeta conectada (ya sea a través de una conexión de cuadro de diálogo interno o una devolución de llamada lpfnConnect ).

Comentarios

Nota

El encabezado winscard.h define OPENCARDNAME_EX como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado winscard.h

Consulte también

SCardConnect

SCardEstablishContext

SCardReleaseContext

SCardUIDlgSelectCard

Valores devueltos de tarjeta inteligente