estrutura OPENCARDNAME_EXW (winscard.h)

A estrutura OPENCARDNAME_EX contém as informações que a função SCardUIDlgSelectCard usa para inicializar um smart cartão caixa de diálogo Selecionar Cartão.

Sintaxe

typedef struct {
  DWORD                      dwStructSize;
  SCARDCONTEXT               hSCardContext;
  HWND                       hwndOwner;
  DWORD                      dwFlags;
  LPCWSTR                    lpstrTitle;
  LPCWSTR                    lpstrSearchDesc;
  HICON                      hIcon;
  POPENCARD_SEARCH_CRITERIAW pOpenCardSearchCriteria;
  LPOCNCONNPROCW             lpfnConnect;
  LPVOID                     pvUserData;
  DWORD                      dwShareMode;
  DWORD                      dwPreferredProtocols;
  LPWSTR                     lpstrRdr;
  DWORD                      nMaxRdr;
  LPWSTR                     lpstrCard;
  DWORD                      nMaxCard;
  DWORD                      dwActiveProtocol;
  SCARDHANDLE                hCardHandle;
} OPENCARDNAME_EXW, *POPENCARDNAME_EXW, *LPOPENCARDNAME_EXW;

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 o gerenciador de recursos de cartão inteligente. Chame SCardEstablishContext para definir o contexto do gerenciador de recursos e SCardReleaseContext para liberá-lo. O valor desse membro não deve ser NULL.

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 retorna, ela define esses sinalizadores para indicar a entrada do usuário. Esse membro pode ser um dos sinalizadores a seguir.

Valor Significado
SC_DLG_MINIMAL_UI
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.
SC_DLG_NO_UI
Não force nenhuma exibição da interface do usuário (Interface do usuário) Selecionar Cartão, independentemente do resultado da pesquisa.
SC_DLG_FORCE_UI
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 for NULL, o sistema usará o texto padrão "Insira uma 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 e inteligente cartão carregado pelo leitor 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 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 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 lpfnConnect não for NULL, os membros dwShareMode e dwPreferredProtocols serão ignorados . Se lpfnConnect for NULL e dwShareMode não for zero, uma chamada interna será feita para SCardConnect que usa dwShareMode e dwPreferredProtocols como os parâmetros dwShareMode e dwPreferredProtocols . Se a conexão for bem-sucedida, hCardHandle será definido como o identificador retornado por SCardConnect. Se lpfnConnect for NULL e dwShareMode for zero, hCardHandle será definido como NULL.

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ão Unicode ), 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 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ão Unicode ), do buffer apontado por lpstrCard. Se o buffer for muito pequeno para conter as informações de 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 retorno de chamada lpfnConnect).

Comentários

Observação

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 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

   
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]
Cabeçalho winscard.h

Confira também

Scardconnect

Scardestablishcontext

SCardReleaseContext

SCardUIDlgSelectCard

Valores retornados do cartão inteligente