//------------------------------------------------------------------------------------------------- | |
// <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 |