Freigeben über


OPENCARDNAME_EXA Struktur (winscard.h)

Die OPENCARDNAME_EX-Struktur enthält die Informationen, die die SCardUIDlgSelectCard--Funktion zum Initialisieren einer Smartcard verwendet, Dialogfeld "Karte auswählen".

Syntax

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;

Angehörige

dwStructSize

Die Länge der Struktur in Byte. Der Wert dieses Elements darf nicht NULL-sein.

hSCardContext

Der Kontext für die Kommunikation mit der SmartcardRessourcen-Manager. Rufen Sie SCardEstablishContext- auf, um den Kontext des Ressourcen-Managers festzulegen, und SCardReleaseContext-, um ihn freizugeben. Der Wert dieses Elements darf nicht NULL-sein.

hwndOwner

Das Fenster, das das Dialogfeld besitzt. Dieses Element kann ein beliebiges gültiges Fensterhandle sein, oder es kann NULL- für den Desktopstandard sein.

dwFlags

Eine Reihe von Bitkennzeichnungen, die Sie zum Initialisieren des Dialogfelds verwenden können. Wenn das Dialogfeld zurückgegeben wird, legt es diese Flags fest, um die Eingabe des Benutzers anzugeben. Dieses Element kann eine der folgenden Flags sein.

Wert Bedeutung
SC_DLG_MINIMAL_UI
Zeigt das Dialogfeld nur an, wenn sich die Karte, nach der die aufrufende Anwendung durchsucht wird, nicht befindet und für die Verwendung in einem Reader verfügbar ist. Auf diese Weise kann die Karte gefunden, verbunden (entweder über den internen Dialogfeldmechanismus oder die Benutzerrückruffunktionen) und an die aufrufende Anwendung zurückgegeben werden.
SC_DLG_NO_UI
Erzwingen Sie unabhängig vom Suchergebnis keine Anzeige der AuswahlkarteBenutzeroberfläche (UI).
SC_DLG_FORCE_UI
Erzwingen der Anzeige der Auswahlkarte Ui, unabhängig vom Suchergebnis.

lpstrTitle

Ein Zeiger auf eine Zeichenfolge, die in der Titelleiste des Dialogfelds platziert werden soll. Wenn dieses Element NULL-ist, verwendet das System den Standardtitel "Select Card:".

lpstrSearchDesc

Ein Zeiger auf eine Zeichenfolge, die dem Benutzer als Aufforderung zum Einfügen der Smartcard-angezeigt werden soll. Wenn dieses Element NULL-ist, verwendet das System den Standardtext "Bitte eine Smartcard einfügen".

hIcon

Ein Ziehpunkt für ein Symbol (32 x 32 Pixel). Sie können ein anbieterspezifisches Symbol angeben, das im Dialogfeld angezeigt werden soll. Wenn dieser Wert NULL-ist, wird ein generisches Smartcardlesersymbol angezeigt, das geladen wird.

pOpenCardSearchCriteria

Ein Zeiger auf die zu verwendende OPENCARD_SEARCH_CRITERIA Struktur oder NULL-, wenn keins verwendet wird.

lpfnConnect

Ein Zeiger auf die Kartenverbindungsroutine des Anrufers. Wenn der Aufrufer eine zusätzliche Verarbeitung durchführen muss, um eine Verbindung mit der Karte herzustellen, wird dieser Funktionszeiger auf die Verbindungsfunktion des Benutzers festgelegt. Wenn die Verbindungsfunktion erfolgreich ist, bleibt die Karte verbunden und initialisiert, und der Kartenziehpunkt wird zurückgegeben.

Der Prototyp für die Verbindungsroutine lautet wie folgt.

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

Ein ungültiger Zeiger auf Benutzerdaten. Dieser Zeiger wird zurück an den Anrufer in der Connect-Routine übergeben.

dwShareMode

Wenn lpfnConnect- nicht NULL-ist, werden die dwShareMode- und dwPreferredProtocols-Member ignoriert. Wenn lpfnConnect-NULL- ist und dwShareMode- ungleich Null ist, Ein interner Aufruf erfolgt an SCardConnect-, die dwShareMode- und dwPreferredProtocols als dwShareMode- und dwPreferredProtocols Parameter verwendet. Wenn die Verbindung erfolgreich ist, wird hCardHandle- auf das von SCardConnectzurückgegebene Handle festgelegt. Wenn lpfnConnect-NULL- ist und dwShareMode- null ist, wird hCardHandle- auf NULL-festgelegt.

dwPreferredProtocols

Wird für die interne Verbindung verwendet, wie in dwShareModebeschrieben.

lpstrRdr

Wenn sich die Karte befindet, enthält der lpstrRdr- Puffer den Namen des Lesers, der die gefundene Karte enthält. Der Puffer sollte mindestens 256 Zeichen lang sein.

nMaxRdr

Größe des Puffers in Byte (ANSI-Version) oder Zeichen (Unicode--Version) des Puffers, auf den lpstrRdrverweist. Wenn der Puffer zu klein ist, um die Leseinformationen zu enthalten, gibt SCardUIDlgSelectCard SCARD_E_NO_MEMORY und die erforderliche Größe des Puffers zurück, auf den lpstrRdrverweist.

lpstrCard

Wenn sich die Karte befindet, enthält der lpstrCard- Puffer den Namen der gefundenen Karte. Der Puffer sollte mindestens 256 Zeichen lang sein.

nMaxCard

Größe des Puffers in Bytes (ANSI-Version) oder Zeichen (Unicode- Version) des Puffers, auf den lpstrCard-verweist. Wenn der Puffer zu klein ist, um die Karteninformationen zu enthalten, gibt SCardUIDlgSelectCard SCARD_E_NO_MEMORY und die erforderliche Größe des Puffers in nMaxCard-zurück.

dwActiveProtocol

Das tatsächliche Protokoll, das verwendet wird, wenn das Dialogfeld eine Verbindung zu einer Karte erstellt.

hCardHandle

Ein Handle der verbundenen Karte (entweder über ein internes Dialogfeld verbinden oder ein lpfnConnect Rückruf).

Bemerkungen

Anmerkung

Der winscard.h-Header definiert OPENCARDNAME_EX als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows XP [nur Desktop-Apps]
mindestens unterstützte Server- Windows Server 2003 [Nur Desktop-Apps]
Header- winscard.h

Siehe auch

SCardConnect-

SCardEstablishContext-

SCardReleaseContext-

SCardUIDlgSelectCard-

Smartcard-Rückgabewerte