aboutsummaryrefslogtreecommitdiff
path: root/src/dutil/inc/buffutil.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/dutil/inc/buffutil.h')
-rw-r--r--src/dutil/inc/buffutil.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/src/dutil/inc/buffutil.h b/src/dutil/inc/buffutil.h
new file mode 100644
index 00000000..e61cdb58
--- /dev/null
+++ b/src/dutil/inc/buffutil.h
@@ -0,0 +1,80 @@
1#pragma once
2// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
3
4
5#ifdef __cplusplus
6extern "C" {
7#endif
8
9
10// macro definitions
11
12#define ReleaseBuffer ReleaseMem
13#define ReleaseNullBuffer ReleaseNullMem
14#define BuffFree MemFree
15
16
17// function declarations
18
19HRESULT BuffReadNumber(
20 __in_bcount(cbBuffer) const BYTE* pbBuffer,
21 __in SIZE_T cbBuffer,
22 __inout SIZE_T* piBuffer,
23 __out DWORD* pdw
24 );
25HRESULT BuffReadNumber64(
26 __in_bcount(cbBuffer) const BYTE* pbBuffer,
27 __in SIZE_T cbBuffer,
28 __inout SIZE_T* piBuffer,
29 __out DWORD64* pdw64
30 );
31HRESULT BuffReadString(
32 __in_bcount(cbBuffer) const BYTE* pbBuffer,
33 __in SIZE_T cbBuffer,
34 __inout SIZE_T* piBuffer,
35 __deref_out_z LPWSTR* pscz
36 );
37HRESULT BuffReadStringAnsi(
38 __in_bcount(cbBuffer) const BYTE* pbBuffer,
39 __in SIZE_T cbBuffer,
40 __inout SIZE_T* piBuffer,
41 __deref_out_z LPSTR* pscz
42 );
43HRESULT BuffReadStream(
44 __in_bcount(cbBuffer) const BYTE* pbBuffer,
45 __in SIZE_T cbBuffer,
46 __inout SIZE_T* piBuffer,
47 __deref_out_bcount(*pcbStream) BYTE** ppbStream,
48 __out SIZE_T* pcbStream
49 );
50
51HRESULT BuffWriteNumber(
52 __deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
53 __inout SIZE_T* piBuffer,
54 __in DWORD dw
55 );
56HRESULT BuffWriteNumber64(
57 __deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
58 __inout SIZE_T* piBuffer,
59 __in DWORD64 dw64
60 );
61HRESULT BuffWriteString(
62 __deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
63 __inout SIZE_T* piBuffer,
64 __in_z_opt LPCWSTR scz
65 );
66HRESULT BuffWriteStringAnsi(
67 __deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
68 __inout SIZE_T* piBuffer,
69 __in_z_opt LPCSTR scz
70 );
71HRESULT BuffWriteStream(
72 __deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
73 __inout SIZE_T* piBuffer,
74 __in_bcount(cbStream) const BYTE* pbStream,
75 __in SIZE_T cbStream
76 );
77
78#ifdef __cplusplus
79}
80#endif