SCardGetReaderIconA 函式 (winscard.h)

SCardGetReaderIcon 函式會取得指定讀取器名稱之智慧卡閱讀機的圖示。 此函式不會影響卡片閱讀機的狀態。

語法

LONG SCardGetReaderIconA(
  [in]      SCARDCONTEXT hContext,
  [in]      LPCSTR       szReaderName,
  [out]     LPBYTE       pbIcon,
  [in, out] LPDWORD      pcbIcon
);

參數

[in] hContext

識別查詢之資源管理員內容的句柄。 您可以透過先前呼叫 SCardEstablishContext 函式來設定資源管理員內容。 此參數不可為 NULL

[in] szReaderName

讀取器名稱。 您可以呼叫 SCardListReaders 函式來取得此值。

[out] pbIcon

緩衝區的指標,其中包含從圖示檔案讀取的智慧卡讀取器圖示 BLOB。 如果此值為 NULL,此函式會忽略 在 azureIcon 參數中提供的緩衝區長度 ,如果此參數 不是 NULL,則會寫入緩衝區的長度,如果此參數不是 NULL,則會傳回成功碼。

[in, out] pcbIcon

pbIcon 緩衝區的長度,以字元為單位。 此參數會接收所接收屬性的實際長度。 如果緩衝區長度指定為SCARD_AUTOALLOCATE, 則 pbIcon 會從指標轉換成位元組指標,並接收包含 屬性的記憶體區塊位址。 此記憶體區塊必須與 SCardFreeMemory 函式 解除分配。

傳回值

此函式會根據它是否成功或失敗,傳回不同的值。

傳回碼 Description
「成功」
SCARD_S_SUCCESS。
失敗
錯誤碼。 如需詳細資訊,請參閱 智慧卡傳回值

備註

圖示應該是 256 × 256 像素,沒有 Alpha 色板。

範例

PBYTE    pbIcon = NULL;
DWORD    cbIcon = SCARD_AUTOALLOCATE;
DWORD    i;
LONG     lReturn;
LPTSTR   szReaderName = "USB Smart Card Reader 0";

// Retrieve the reader's icon.
// hContext was set by a previous call to SCardEstablishContext.
lReturn = SCardGetReaderIcon(hContext,
                         szReaderName,
                         (PBYTE)&pbIcon,
                         &cbIcon);

if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardGetReaderIcon - %x\n", lReturn);
    // Take appropriate action.
}
else
{
    // Free the memory when done. 
    lReturn = SCardFreeMemory(hContext, pbIcon);
}

注意

winscard.h 標頭會根據 UNICODE 預處理器常數的定義,將 SCardGetReaderIcon 定義為別名,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows 8 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2012 [僅限傳統型應用程式]
目標平台 Windows
標頭 winscard.h