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 オブジェクトに含まれている値を返します。