次の方法で共有


ISCardCmd::p ut_Data メソッド

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

put_Dataメソッドは、アプリケーション プロトコル データ ユニット (APDU) のデータ フィールドを設定します。

構文

HRESULT put_Data(
  [in] LPBYTEBUFFER pData
);

パラメーター

pData [in]

APDU データ・フィールドにコピーされるバイト・バッファー・オブジェクト (IStream) へのポインター。

戻り値

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

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

 

解説

メッセージの新しいデータ部分を設定すると、データ・フィールドの長さが計算され、APDU の P3 パラメーターに保管されます。 データ フィールドの長さを取得するには、 get_P3を呼び出します。

APDU からデータ フィールドを取得するには、 get_Dataを呼び出します。

次の例は、 アプリケーション プロトコル データ ユニット (APDU) でデータ フィールドを設定する方法を示しています。 この例では、pIByteData が IByteBuffer インターフェイスのインスタンスへの有効なポインターであり、pISCardCmd が ISCardCmd インターフェイスのインスタンスへの有効なポインターであることを前提としています。

HRESULT    hr;

// pIByteData is a pointer to an instance of IByteBuffer.
// Set the data.
hr = pISCardCmd->put_Data(pIByteData);
if (FAILED(hr)) 
{
    printf("Failed put_Data.\n");
    // Take other error handling action 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_Data

get_P3

ISCardCmd