次の方法で共有


IDirectPlay8Address::GetComponentByIndex メソッド

IDirectPlay8Address::GetComponentByIndex メソッド

指定されたインデックスのコンポーネントに関する情報を取得する。コンポーネントの値はネイティブなフォーマットで取得される。コンポーネント キーが見つからない場合、メソッドは DPNERR_DOESNOTEXIST を返す。

コンポーネントの値はネイティブなフォーマットで取得される。したがって、コンポーネントの値が DWORD である場合、この呼び出しにより DWORD が取得される。つまり、バッファ サイズは 4 であり、pvBufferPDWORD に再設定される。

構文

HRESULT GetComponentByIndex(      
    const DWORD dwComponentID,
    WCHAR *pwszName,
    PDWORD pdwNameLen,
    void *pvBuffer,
    PDWORD pdwBufferSize,
    PDWORD pdwDataType
);

パラメータ

  • dwComponentID
    [in] 取得するコンポーネントのインデックス。この値は 0 から始まり、[0..GetNumComponents()-1] の範囲にする。
  • pwszName
    [out] 呼び出しが成功した場合にコンポーネントの名前を取得するバッファ。必要なサイズを取得するには、このパラメータに NULL を指定し、pdwNameLen が指す DWORD に 0 を指定する。この場合、メソッドは DPNERR_BUFFERTOOSMALL を返す。
  • pdwNameLen
    [in, out] 入力では、pwszName が指す、バッファのサイズ (文字単位、NULL 終端文字を含む) を保持する DWORD へのポインタ。出力では、成功の場合はバッファに書き込まれた文字数 (NULL 終端文字を含む)、失敗の場合はこの値の格納に必要な文字数 (NULL 終端文字を含む) を保持する DWORD へのポインタ。
  • pvBuffer
    [out] コンポーネントの値に格納されるデータを取得するバッファ。必要なサイズを取得するには、このパラメータに NULL を指定し、pdwBufferSize が指す DWORD に 0 を指定する。この場合、メソッドは DPNERR_BUFFERTOOSMALL を返す。
  • pdwBufferSize
    [in, out] 入力では、pvBuffer が指す、バッファのサイズ (バイト単位) を保持する DWORD へのポインタ。出力では、成功の場合はバッファに書き込まれたバイト数、失敗の場合はデータの格納に必要なバイト数を保持する DWORD へのポインタ。
  • pdwDataType
    [out] このパラメータが指す DWORD。このコンポーネントに格納されるデータ型に設定される。次のいずれかに設定できる。
    • DPNA_DATATYPE_STRING
      データは NULL 終端文字列である。
    • DPNA_DATATYPE_DWORD
      データは DWORD である。
    • DPNA_DATATYPE_GUID
      データはグローバル一意識別子 (GUID) である。
    • DPNA_DATATYPE_BINARY
      データは未処理のバイナリである。

戻り値

成功した場合は S_OK を返し、失敗した場合は次のいずれかのエラー値を返す。

DPNERR_BUFFERTOOSMALL 指定されたバッファが小さすぎて、要求されたデータを格納できない。
DPNERR_DOESNOTEXIST 要求された要素はアドレスの一部ではない。
DPNERR_INVALIDPARAM メソッドに渡された 1 つ以上のパラメータが無効である。