IItemMetadata::TryGetFieldString
文字列フィールドの値を返します。
HRESULT TryGetFieldString(
LPCWSTR pcszFieldName,
LPWSTR pszValue,
ULONG * pcchValue);
パラメーター
- pcszFieldName
[in, string] フィールドの名前です。
- pszValue
[in, out, size_is(*pcchValue)] 指定したフィールドの値を返します。
- pcchValue
[in, out] pszValue の文字数を指定します。NULL 終端を含め、書き込まれた文字数を返します。ただし、pszValue が小さすぎる場合は、指定したフィールドの値を取得するのに必要な文字数を返します。
戻り値
S_OK。
値が設定されていない場合や NULL に設定されている場合は S_FALSE。
E_POINTER。
E_INVALIDARG。
フィールドが存在しない場合は SYNC_E_METADATA_FIELD_INVALID_NAME。
フィールドが文字列でない場合は SYNC_E_METADATA_FIELD_INVALID_TYPE。
pszValue が小さすぎてフィールドの値を受け取れない場合は HRESULT_FROM_WIN32(ERROR_MORE_DATA)。この場合は、pcchValue が必要な文字数を返します。
解説
カスタム フィールドは、レプリカ メタデータを初めて初期化するときに、CUSTOM_FIELD_DEFINITION 構造体を使用して定義する必要があります。
フィールド値を設定するために IItemMetadata::SetFieldString を呼び出した場合、IReplicaMetadata::SaveItemMetadata の呼び出しによって変更がまだ保存されていなければ、TryGetFieldString はメタデータ ストアに保存されている値ではなく、IItemMetadata オブジェクトに含まれている値を返します。