次の方法で共有


ISCardCmd::get_ApduReply メソッド

[ get_ApduReply メソッドは、[要件] セクションで指定したオペレーティング システムで使用できます。 Windows Server 2003 Service Pack 1 (SP1) 以降、Windows Vista、Windows Server 2008、および以降のバージョンのオペレーティング システムでは使用できません。 スマート カード モジュールも同様の機能を提供します

get_ApduReply メソッドは、応答 APDU を取得し、特定のバイト バッファーに配置します。 コマンド APDU に対してトランザクションが実行されていない場合、応答は NULL になる可能性があります。

構文

HRESULT get_ApduReply(
  [out] LPBYTEBUFFER *ppReplyApdu
);

パラメーター

ppReplyApdu [out]

返された APDU 応答メッセージを含むバイト バッファー ( IStream オブジェクトを介してマップされる) へのポインター。

戻り値

メソッドは、次のいずれかの値を返します。

リターン コード 説明
S_OK
操作は正常に完了しました。
E_INVALIDARG
ppReplyApdu パラメーターが無効です。
E_POINTER
不適切なポインターが ppReplyApdu で渡されました。
E_OUTOFMEMORY
メモリが不足しています。

 

解説

APDU 応答の長さを判別するには、 get_ApduReplyLengthを呼び出します。

新しい応答 APDU を設定するには、 put_ApduReplyを呼び出します。

このインターフェイスによって提供されるすべてのメソッドの一覧については、「 ISCardCmd」を参照してください。

上記の COM エラー コードに加えて、要求を完了するためにスマート カード関数が呼び出された場合、このインターフェイスはスマート カード エラー コードを返す場合があります。 詳細については、「 スマート カードの戻り値」を参照してください。

次の例は、応答データを取得する方法を示しています。 この例では、lLe が LONG 型の変数であり、その値が ISCardCmd::get_ApduReplyLength メソッドの以前の呼び出しによって設定され、pIByteReply が IByteBuffer インターフェイスのインスタンスへの有効なポインターであり、pISCardCmd が ISCardCmd インターフェイスのインスタンスへの有効なポインターであることを前提としています。

HRESULT      hr;

if (lLe > 0)
{
    // Get reply data if available.
    hr = pISCardCmd->get_ApduReply(&pIByteReply);
    if (FAILED(hr)) 
    {
        printf("Failed ISCardCmd::get_ApduReply.\n");
        // Take other error handling action as needed.
    }
    else
    {
        BYTE byReplyBytes[256];
        LONG lBytesRead;

        hr = pIByteReply->Read(byReplyBytes, lLe, &lBytesRead);
        if (FAILED(hr))
        {
            printf("Failed IByteBuffer::Read.\n");
            // Take other error handling action as needed.
        }
        // Use the bytes in byReplyBytes as needed.
    }
}

要件

要件
サポートされている最小のクライアント
Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows Server 2003 [デスクトップ アプリのみ]
クライアント サポートの終了
Windows XP
サーバー サポートの終了
Windows Server 2003
ヘッダー
Scarddat.h
タイプ ライブラリ
Scarddat.tlb
[DLL]
Scardssp.dll
IID
IID_ISCardCmdは D5778AE3-43DE-11D0-9171-00AA00C18068 として定義されています

関連項目

get_ApduReplyLength

ISCardCmd

put_ApduReply