blob: a6d910923b9f9ff0cdef09042ca75edeb767b113 [file] [log] [blame]
//-------------------------------------------------------------------------------------------------
// <copyright file="buffutil.h" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// The use and distribution terms for this software are covered by the
// Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
// which can be found in the file CPL.TXT at the root of this distribution.
// By using this software in any fashion, you are agreeing to be bound by
// the terms of this license.
//
// You must not remove this notice, or any other, from this software.
// </copyright>
//
// <summary>
// Binary serialization helper functions.
// </summary>
//-------------------------------------------------------------------------------------------------
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
// macro definitions
#define ReleaseBuffer ReleaseMem
#define ReleaseNullBuffer ReleaseNullMem
#define BuffFree MemFree
// function declarations
HRESULT BuffReadNumber(
__in_bcount(cbBuffer) const BYTE* pbBuffer,
__in SIZE_T cbBuffer,
__inout SIZE_T* piBuffer,
__out DWORD* pdw
);
HRESULT BuffReadNumber64(
__in_bcount(cbBuffer) const BYTE* pbBuffer,
__in SIZE_T cbBuffer,
__inout SIZE_T* piBuffer,
__out DWORD64* pdw64
);
HRESULT BuffReadString(
__in_bcount(cbBuffer) const BYTE* pbBuffer,
__in SIZE_T cbBuffer,
__inout SIZE_T* piBuffer,
__deref_out_z LPWSTR* pscz
);
HRESULT BuffReadStream(
__in_bcount(cbBuffer) const BYTE* pbBuffer,
__in SIZE_T cbBuffer,
__inout SIZE_T* piBuffer,
__deref_out_bcount(*pcbStream) BYTE** ppbStream,
__out SIZE_T* pcbStream
);
HRESULT BuffWriteNumber(
__deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
__inout SIZE_T* piBuffer,
__in DWORD dw
);
HRESULT BuffWriteNumber64(
__deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
__inout SIZE_T* piBuffer,
__in DWORD64 dw64
);
HRESULT BuffWriteString(
__deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
__inout SIZE_T* piBuffer,
__in_z LPCWSTR scz
);
HRESULT BuffWriteStream(
__deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
__inout SIZE_T* piBuffer,
__in_bcount(cbStream) const BYTE* pbStream,
__in SIZE_T cbStream
);
#ifdef __cplusplus
}
#endif