ISCard::get_Atr メソッド
[ get_Atr メソッドは、[要件] セクションで指定したオペレーティング システムで使用できます。 スマート カード モジュールも同様の機能を提供します。
get_Atr メソッドは、スマート カードの ATR 文字列を取得します。
構文
HRESULT get_Atr(
[out] LPBYTEBUFFER *ppAtr
);
パラメーター
-
ppAtr [out]
-
戻り時に ATR 文字列を含む IStream の形式のバイト バッファーへのポインター。
戻り値
メソッドは、次のいずれかの値を返します。
リターン コード | 説明 |
---|---|
|
操作は正常に完了しました。 |
|
ppAtr パラメーターが無効です。 |
|
不適切なポインターが ppAtr で渡されました。 |
|
要求を満たすメモリは使用できません。 |
解説
上記の COM エラー コードに加えて、要求を完了するためにスマート カード関数が呼び出された場合、このインターフェイスはスマート カード エラー コードを返す場合があります。 詳細については、「 スマート カードの戻り値」を参照してください。
例
次の例は、スマート カードから ATR 文字列を取得する方法を示しています。
// Retrieve the ATR.
// pISCard is a pointer to a previously instantiated ISCard.
// pAtr is a pointer to a previously instantiated IByteBuffer.
hr = pISCard->get_Atr(&pAtr);
if (FAILED(hr))
{
printf("Failed get_Atr\n");
// Take other error handling action.
}
// Success, you can now use IByteBuffer::Read to access ATR bytes.
BYTE byAtr[32];
long lBytesRead, i;
// Read the ATR string into a byte array.
hr = pAtr->Read(byAtr, 32, &lBytesRead);
// Use the ATR value. (This example merely displays the bytes.)
for ( i = 0; i < lBytesRead; i++)
printf("%c", *(byAtr + i));
printf("\n");
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows XP [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows Server 2003 [デスクトップ アプリのみ] |
クライアント サポートの終了 |
Windows XP |
サーバー サポートの終了 |
Windows Server 2003 |
ヘッダー |
|
タイプ ライブラリ |
|
[DLL] |
|
IID |
IID_ISCardは 1461AAC3-6810-11D0-918F-00AA00C18068 として定義されています |
関連項目