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 |