ISyncMetadataStoreSerializer::GetSerializedReplicaId
返回其元数据已序列化为指定的目标流的副本的副本 ID。
HRESULT GetSerializedReplicaId(
IStream * pStream,
BYTE * pbReplicaId,
DWORD * pcbReplicaId,
ID_PARAMETERS * pIdParameters);
参数
- pStream
[in] 包含特定副本的序列化元数据的流。
- pbReplicaId
[in, out, unique, size_is(*pcbReplicaId)] 返回与此元数据相关联的副本的 ID。
- pcbReplicaId
[in, out] 指定 pbReplicaId 中的字节数。如果 pbReplicaId 太小,则返回 pbReplicaId 必需的字节数;如果写入了数据,则返回写入到 pbReplicaId 中的字节数。
- pIdParameters
[out] 为提供程序指定格式设置(如副本 ID 格式)的 ID_PARAMETERS 结构,其中该提供程序的元数据进行了序列化。
返回值
S_OK。
E_OUTOFMEMORY。
E_POINTER。
如果在调用方法时没有打开的元数据存储区,则返回值为 SYNC_E_INVALIDOPERATION。
如果在反序列化期间遇到了任何文件格式错误,则返回值为 SYNC_E_METADATA_STORE_DESERIALIZATION_ERROR。
如果 pbReplicaId 太小,则返回值为 HRESULT_FROM_WIN32(ERROR_MORE_DATA)。在这种情况下,pcbReplicaId 返回必需的字节数。
备注
在调用此方法之前,必须打开元数据存储区。通过调用 ISqlSyncMetadataStore::OpenStore 或 ISqlSyncMetadataStore::CreateStore 可打开存储区。在未首先打开存储区的情况下调用此方法会导致出现错误返回值。