estrutura OPENCARDNAME_EXA (winscard.h)
A estrutura OPENCARDNAME_EX contém as informações que a função SCardUIDlgSelectCard usa para inicializar um cartão inteligente caixa de diálogo Selecionar Cartão.
Sintaxe
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;
Membros
dwStructSize
O comprimento, em bytes, da estrutura. O valor desse membro não deve ser NULL.
hSCardContext
O contexto usado para comunicação com odo gerenciador de recursos do
hwndOwner
A janela que possui a caixa de diálogo. Esse membro pode ser qualquer identificador de janela válido ou pode ser NULL para o padrão da área de trabalho.
dwFlags
Um conjunto de sinalizadores de bits que você pode usar para inicializar a caixa de diálogo. Quando a caixa de diálogo é retornada, ela define esses sinalizadores para indicar a entrada do usuário. Esse membro pode ser um dos sinalizadores a seguir.
Valor | Significado |
---|---|
|
Exiba a caixa de diálogo somente se o cartão que está sendo pesquisado pelo aplicativo de chamada não estiver localizado e disponível para uso em um leitor. Isso permite que o cartão seja encontrado, conectado (por meio do mecanismo da caixa de diálogo interna ou das funções de retorno de chamada do usuário) e retornado ao aplicativo de chamada. |
|
Não force nenhuma exibição do Selecionarinterface do usuário (interface do usuário) do do usuário, independentemente do resultado da pesquisa. |
|
Force a exibição da interface do usuário Selecionar Cartão, independentemente do resultado da pesquisa. |
lpstrTitle
Um ponteiro para uma cadeia de caracteres a ser colocada na barra de título da caixa de diálogo. Se esse membro for NULL, o sistema usará o título padrão "Selecionar Cartão:".
lpstrSearchDesc
Um ponteiro para uma cadeia de caracteres a ser exibida para o usuário como um prompt para inserir o cartão inteligente . Se esse membro estiver NULL, o sistema usará o texto padrão "Insira um cartão inteligente".
hIcon
Um identificador para um ícone (32 x 32 pixels). Você pode especificar um ícone específico do fornecedor a ser exibido na caixa de diálogo. Se esse valor for NULL, um ícone genérico carregado do leitor de cartão inteligente será exibido.
pOpenCardSearchCriteria
Um ponteiro para a estrutura OPENCARD_SEARCH_CRITERIA a ser usada ou NULL, se não for usado.
lpfnConnect
Um ponteiro para a rotina de conexão de cartão do chamador. Se o chamador precisar executar processamento adicional para se conectar ao cartão, esse ponteiro de função será definido como a função de conexão do usuário. Se a função de conexão for bem-sucedida, o cartão será deixado conectado e inicializado e o identificador de cartão será retornado.
O protótipo da rotina de conexão é o seguinte.
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
Um ponteiro nulo para os dados do usuário. Esse ponteiro é passado de volta para o chamador na rotina conectar.
dwShareMode
Se
dwPreferredProtocols
Usado para conexão interna, conforme descrito em dwShareMode.
lpstrRdr
Se o cartão estiver localizado, o buffer lpstrRdr conterá o nome do leitor que contém o cartão localizado. O buffer deve ter pelo menos 256 caracteres.
nMaxRdr
Tamanho, em bytes (versão ANSI) ou caracteres (versãoUnicode), do buffer apontado por lpstrRdr. Se o buffer for muito pequeno para conter as informações do leitor, SCardUIDlgSelectCard retornará SCARD_E_NO_MEMORY e o tamanho necessário do buffer apontado por lpstrRdr.
lpstrCard
Se o cartão estiver localizado, o buffer de lpstrCard conterá o nome do cartão localizado. O buffer deve ter pelo menos 256 caracteres.
nMaxCard
Tamanho, em bytes (versão ANSI) ou caracteres (versãoUnicode), do buffer apontado por lpstrCard. Se o buffer for muito pequeno para conter as informações do cartão, SCardUIDlgSelectCard retornará SCARD_E_NO_MEMORY e o tamanho necessário do buffer em nMaxCard.
dwActiveProtocol
O protocolo real em uso quando a caixa de diálogo faz uma conexão com um cartão.
hCardHandle
Um identificador do cartão conectado (por meio de uma caixa de diálogo interna conectar ou um lpfnConnect retorno de chamada).
Observações
Nota
O cabeçalho winscard.h define OPENCARDNAME_EX como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do 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 Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows XP [somente aplicativos da área de trabalho] |
servidor com suporte mínimo | Windows Server 2003 [somente aplicativos da área de trabalho] |
cabeçalho | winscard.h |
Consulte também
SCardUIDlgSelectCard