Função SCardUIDlgSelectCardA (winscard.h)
A função SCardUIDlgSelectCard exibe a caixa de diálogo Smart cartão Selecionar Cartão.
Sintaxe
LONG SCardUIDlgSelectCardA(
[in] LPOPENCARDNAMEA_EX unnamedParam1
);
Parâmetros
[in] unnamedParam1
Ponteiro para a estrutura OPENCARDNAME_EX da caixa de diálogo Selecionar Cartão .
Retornar valor
Se a função exibir com êxito a caixa de diálogo Selecionar Cartão , o valor retornado será SCARD_S_SUCCESS.
Se a função falhar, será exibido um código de erro. Para obter mais informações, consulte Valores retornados do cartão inteligente.
Comentários
A função SCardUIDlgSelectCard fornece um método para se conectar a uma cartão inteligente específica. Quando chamada, essa função executa uma pesquisa por cartões inteligentes apropriados que correspondem ao membro OPENCARD_SEARCH_CRITERIA especificado pelo parâmetro pDlgStruc . Dependendo do membro dwFlags do pDlgStruc, essa função executa as seguintes ações.
Valor | Ação |
---|---|
SC_DLG_FORCE_UI | Conecta-se à cartão selecionada pelo usuário na caixa de diálogo Smart cartão Selecionar Cartão. |
SC_DLG_MINIMAL_UI | Seleciona a cartão inteligente se apenas uma cartão inteligente atender aos critérios ou retornar informações sobre a seleção do usuário se mais de um cartão inteligente atender aos critérios. |
SC_DLG_NO_UI | Seleciona o primeiro cartão disponível. |
Essa função substitui GetOpenCardName. A função GetOpenCardName é mantida para compatibilidade com versões anteriores com a versão 1.0 dos Componentes Base do Cartão Inteligente da Microsoft.
Exemplos
O exemplo a seguir mostra como exibir o smart cartão caixa de diálogo Selecionar Cartão.
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).
Observação
O cabeçalho winscard.h define SCardUIDlgSelectCard como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | winscard.h |
Biblioteca | Scarddlg.lib |
DLL | Scarddlg.dll |