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 对象中的值,而不会返回存储在元数据存储区中的值。