ISCardDatabase::ListCards 方法
[ ListCards 方法可用於需求一節中指定的作業系統。 它不適用於 Windows Server 2003 service Pack 1 (SP1) 及更新版本、Windows Vista、Windows Server 2008 和後續版本的作業系統。 智慧卡模組提供類似的功能。
ListCards方法會擷取符合指定介面識別碼的所有智慧卡名稱, (GUID) 、指定的ATR 字串或兩者。
語法
HRESULT ListCards(
[in] LPBYTEBUFFER pAtr,
[in] LPSAFEARRAY pInterfaceGuids,
[in] LONG localeId,
[out] LPSAFEARRAY *ppCardNames
);
參數
-
pAtr [in]
-
智慧卡ATR 字串的指標。 ATR 字串必須封裝成 IByteBuffer。
-
pInterfaceGuids [in]
-
COM 介面識別碼的 SAFEARRAY 指標, (BSTR 格式) GUID。
-
localeId [in]
-
語言當地語系化識別碼。
-
ppCardNames [out]
-
BSTR 的 SAFEARRAY 指標,其中包含成功時滿足搜尋參數之智慧卡的名稱;如果作業失敗, 則為 Null 。
傳回值
方法會傳回下列其中一個可能的值。
傳回碼 | 描述 |
---|---|
|
作業順利完成。 |
|
無效的參數。 |
|
傳入錯誤的指標。 |
|
記憶體不足。 |
備註
若要擷取所有已知的 讀取器 或 讀取器,請分別呼叫 ListReaders 或 ListReaderGroups 。
分別擷取特定卡片GetProviderCardId或ListCardInterfaces的主要服務或介面。
如需此介面提供之所有方法的清單,請參閱 ISCardDatabase。
除了上述 COM 錯誤碼之外,如果呼叫智慧卡函式來完成要求,此介面可能會傳回智慧卡錯誤碼。 如需詳細資訊,請參閱 智慧卡傳回值。
範例
下列範例顯示擷取符合指定 ATR 字串的智慧卡名稱。
// Define or determine byAtr as needed for your ATR use.
BYTE byAtr[] = {0x3b,0x27,0x00,0x80,0x65,0xa2,0x0c,0x01,0x01,0x37};
LPSAFEARRAY pSafeArray = NULL;
HRESULT hr;
// pIByteBuff is a pointer to an instance of IByteBuffer.
hr = pIByteBuff->Initialize(sizeof(byAtr), byAtr);
// Call the function for the specified ATR.
hr = pISCDataBase->ListCards(pIByteBuff,
NULL,
0,
&pSafeArray);
if (FAILED(hr))
{
printf("Failed ListCards\n");
// Take other error handling action as needed.
}
else
{
// Use the safe array as needed.
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows Server 2003 [僅限傳統型應用程式] |
用戶端支援結束 |
Windows XP |
伺服器終止支援 |
Windows Server 2003 |
標頭 |
|
類型程式庫 |
|
DLL |
|
IID |
IID_ISCardDatabase定義為 1461AAC8-6810-11D0-918F-00AA00C18068 |
另請參閱