取得位元組陣列欄位的值。
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 物件中包含的值,而不是中繼資料存放區中儲存的值。