SCardGetReaderIconW 関数 (winscard.h)
SCardGetReaderIcon 関数は、特定のリーダーの名前のスマート カード リーダーのアイコンを取得します。 この関数は、カード リーダーの状態には影響しません。
構文
LONG SCardGetReaderIconW(
[in] SCARDCONTEXT hContext,
[in] LPCWSTR szReaderName,
[out] LPBYTE pbIcon,
[in, out] LPDWORD pcbIcon
);
パラメーター
[in] hContext
クエリのリソース マネージャー コンテキストを識別するハンドル。 リソース マネージャー コンテキストは、 SCardEstablishContext 関数の前の呼び出しによって設定できます。 このパラメーターを NULL にすることはできません。
[in] szReaderName
閲覧者名。 この値を取得するには、 SCardListReaders 関数を 呼び出します。
[out] pbIcon
アイコン ファイルから読み取られたスマート カード リーダー アイコンの BLOB を含むバッファーへのポインター。 この値が NULL の場合、関数は pcbIcon パラメーターで指定されたバッファー長を無視し、このパラメーターが NULL でない場合に pcbIcon に返されるバッファーの長さを書き込み、成功コードを返します。
[in, out] pcbIcon
pbIcon バッファーの長さ (文字数)。 このパラメーターは、受信した属性の実際の長さを受け取ります。 バッファー長が SCARD_AUTOALLOCATE として指定されている場合、 pbIcon はポインターからバイト ポインターに変換され、 属性を含むメモリ ブロックのアドレスを受け取ります。 このメモリ ブロックは 、SCardFreeMemory 関数を使用して割り当てを解除する必要があります。
戻り値
この関数は、成功するか失敗するかによって異なる値を返します。
リターン コード | 説明 |
---|---|
|
SCARD_S_SUCCESS。 |
|
エラー コード。 詳細については、「 スマート カードの戻り値」を参照してください。 |
解説
アイコンは、アルファ チャネルのない 256 × 256 ピクセルである必要があります。
例
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);
}
Note
winscard.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SCardGetReaderIcon を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winscard.h |