Función SCardUIDlgSelectCardA (winscard.h)
La función SCardUIDlgSelectCard muestra el cuadro de diálogo Seleccionar tarjetainteligente.
Sintaxis
LONG SCardUIDlgSelectCardA(
[in] LPOPENCARDNAMEA_EX unnamedParam1
);
Parámetros
[in] unnamedParam1
Puntero a la estructura OPENCARDNAME_EX del cuadro de diálogo Seleccionar tarjeta .
Valor devuelto
Si la función muestra correctamente el cuadro de diálogo Seleccionar tarjeta , el valor devuelto es SCARD_S_SUCCESS.
Si la función presenta un error, devuelve un código de error. Para obtener más información, consulte Valores devueltos de tarjeta inteligente.
Comentarios
La función SCardUIDlgSelectCard proporciona un método para conectarse a una tarjeta inteligente específica. Cuando se llama a esta función, realiza una búsqueda de tarjetas inteligentes adecuadas que coincidan con el miembro OPENCARD_SEARCH_CRITERIA especificado por el parámetro pDlgStruc . Según el miembro dwFlags de pDlgStruc, esta función realiza las siguientes acciones.
Value | Acción |
---|---|
SC_DLG_FORCE_UI | Se conecta a la tarjeta seleccionada por el usuario desde el cuadro de diálogo Seleccionar tarjeta inteligente. |
SC_DLG_MINIMAL_UI | Selecciona la tarjeta inteligente si solo una tarjeta inteligente cumple los criterios o devuelve información sobre la selección del usuario si más de una tarjeta inteligente cumple los criterios. |
SC_DLG_NO_UI | Selecciona la primera tarjeta disponible. |
Esta función reemplaza GetOpenCardName. La función GetOpenCardName se mantiene por compatibilidad con versiones anteriores con la versión 1.0 de microsoft Smart Card Base Components.
Ejemplos
En el ejemplo siguiente se muestra cómo mostrar el cuadro de diálogo Seleccionar tarjeta inteligente.
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
El encabezado winscard.h define SCardUIDlgSelectCard 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] |
Plataforma de destino | Windows |
Encabezado | winscard.h |
Library | Scarddlg.lib |
Archivo DLL | Scarddlg.dll |
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de