次の方法で共有


IItemMetadata::TryGetFieldByteArray

バイト配列フィールドの値を取得します。

HRESULT TryGetFieldByteArray(
  LPCWSTR pcszFieldName,
  BYTE * pbValue,
  ULONG * pcbValue);

パラメーター

  • pcszFieldName
    [in, string] フィールドの名前です。
  • pbValue
    [in, out, unique, size_is(* pcbValue)] 指定したフィールドの値を返します。
  • pcbValue
    [in, out] pbValue のバイト数を指定します。書き込まれたバイト数を返します。ただし、pbValue が小さすぎる場合は、指定したフィールドの値を取得するのに必要なバイト数を返します。

戻り値

  • S_OK。

  • 値が設定されていない場合や NULL に設定されている場合は S_FALSE。

  • E_POINTER。

  • E_INVALIDARG。

  • フィールドが存在しない場合は SYNC_E_METADATA_FIELD_INVALID_NAME。

  • フィールドがバイト配列でない場合は SYNC_E_METADATA_FIELD_INVALID_TYPE。

  • pbValue が小さすぎてフィールドの値を受け取れない場合は HRESULT_FROM_WIN32(ERROR_MORE_DATA)。この場合は、pcbValue が必要なバイト数を返します。

解説

カスタム フィールドは、レプリカ メタデータを初めて初期化するときに、CUSTOM_FIELD_DEFINITION 構造体を使用して定義する必要があります。

フィールド値を設定するために IItemMetadata::SetFieldByteArray を呼び出した場合、IReplicaMetadata::SaveItemMetadata の呼び出しによって変更がまだ保存されていなければ、TryGetFieldByteArray はメタデータ ストアに保存されている値ではなく、IItemMetadata オブジェクトに含まれている値を返します。

参照

リファレンス

IItemMetadata インターフェイス