92 lines
2.5 KiB
C
92 lines
2.5 KiB
C
//-------------------------------------------------------------------------------------------------
|
|
// <copyright file="buffutil.h" company="Outercurve Foundation">
|
|
// Copyright (c) 2004, Outercurve Foundation.
|
|
// This software is released under Microsoft Reciprocal License (MS-RL).
|
|
// The license and further copyright text can be found in the file
|
|
// LICENSE.TXT at the root directory of the distribution.
|
|
// </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 BuffReadStringAnsi(
|
|
__in_bcount(cbBuffer) const BYTE* pbBuffer,
|
|
__in SIZE_T cbBuffer,
|
|
__inout SIZE_T* piBuffer,
|
|
__deref_out_z LPSTR* 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_opt LPCWSTR scz
|
|
);
|
|
HRESULT BuffWriteStringAnsi(
|
|
__deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
|
|
__inout SIZE_T* piBuffer,
|
|
__in_z_opt LPCSTR 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
|