Fungsi SCardUIDlgSelectCardA (winscard.h)

Fungsi SCardUIDlgSelectCard menampilkan kotak dialog Pilih Kartupintar.

Sintaks

LONG SCardUIDlgSelectCardA(
  [in] LPOPENCARDNAMEA_EX unnamedParam1
);

Parameter

[in] unnamedParam1

Arahkan ke struktur OPENCARDNAME_EX untuk kotak dialog Pilih Kartu .

Nilai kembali

Jika fungsi berhasil menampilkan kotak dialog Pilih Kartu , nilai yang dikembalikan SCARD_S_SUCCESS.

Jika fungsi gagal, fungsi akan mengembalikan kode kesalahan. Untuk informasi selengkapnya, lihat Nilai Pengembalian Kartu Pintar.

Keterangan

Fungsi SCardUIDlgSelectCard menyediakan metode untuk menyambungkan ke kartu pintar tertentu. Ketika dipanggil, fungsi ini melakukan pencarian kartu pintar yang sesuai dengan anggota OPENCARD_SEARCH_CRITERIA yang ditentukan oleh parameter pDlgStruc . Tergantung pada anggota dwFlagspDlgStruc, fungsi ini mengambil tindakan berikut.

Nilai Tindakan
SC_DLG_FORCE_UI Menyambungkan ke kartu yang dipilih oleh pengguna dari kotak dialog Pilih Kartu pintar.
SC_DLG_MINIMAL_UI Memilih kartu pintar jika hanya satu kartu pintar yang memenuhi kriteria, atau mengembalikan informasi tentang pilihan pengguna jika lebih dari satu kartu pintar memenuhi kriteria.
SC_DLG_NO_UI Memilih kartu pertama yang tersedia.
 

Fungsi ini menggantikan GetOpenCardName. Fungsi GetOpenCardName dipertahankan untuk kompatibilitas mundur dengan Komponen Dasar Kartu Pintar Microsoft versi 1.0.

Contoh

Contoh berikut menunjukkan cara menampilkan kotak dialog Pilih Kartu pintar.

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

Catatan

Header winscard.h mendefinisikan SCardUIDlgSelectCard sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosedur UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header winscard.h
Pustaka Scarddlg.lib
DLL Scarddlg.dll

Lihat juga

OPENCARDNAME_EX