More size_t-ification.
Bob Arnson committed
Nov 29, 2020 at 18:57 UTC
0ae3b1e7b5c0beff0fcfb82728c5bf9f25aee250
9 files changed
+167
-109
dutil.sln
+2
-10
@@ -1,7 +1,7 @@
1
2
Microsoft Visual Studio Solution File, Format Version 12.00
3
-# Visual Studio 15
4
-VisualStudioVersion = 15.0.26730.12
3
+# Visual Studio Version 16
4
+VisualStudioVersion = 16.0.30711.63
5
MinimumVisualStudioVersion = 15.0.26124.0
6
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dutil", "src\dutil\dutil.vcxproj", "{1244E671-F108-4334-BA52-8A7517F26ECD}"
7
EndProject
@@ -9,38 +9,30 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DUtilUnitTest", "src\test\D
9
EndProject
10
Global
11
GlobalSection(SolutionConfigurationPlatforms) = preSolution
12
- Debug|ARM = Debug|ARM
12
Debug|ARM64 = Debug|ARM64
13
Debug|x64 = Debug|x64
14
Debug|x86 = Debug|x86
16
- Release|ARM = Release|ARM
15
Release|ARM64 = Release|ARM64
16
Release|x64 = Release|x64
17
Release|x86 = Release|x86
18
EndGlobalSection
19
GlobalSection(ProjectConfigurationPlatforms) = postSolution
22
- {1244E671-F108-4334-BA52-8A7517F26ECD}.Debug|ARM.ActiveCfg = Debug|ARM
23
- {1244E671-F108-4334-BA52-8A7517F26ECD}.Debug|ARM.Build.0 = Debug|ARM
20
{1244E671-F108-4334-BA52-8A7517F26ECD}.Debug|ARM64.ActiveCfg = Debug|ARM64
21
{1244E671-F108-4334-BA52-8A7517F26ECD}.Debug|ARM64.Build.0 = Debug|ARM64
22
{1244E671-F108-4334-BA52-8A7517F26ECD}.Debug|x64.ActiveCfg = Debug|x64
23
{1244E671-F108-4334-BA52-8A7517F26ECD}.Debug|x64.Build.0 = Debug|x64
24
{1244E671-F108-4334-BA52-8A7517F26ECD}.Debug|x86.ActiveCfg = Debug|Win32
25
{1244E671-F108-4334-BA52-8A7517F26ECD}.Debug|x86.Build.0 = Debug|Win32
30
- {1244E671-F108-4334-BA52-8A7517F26ECD}.Release|ARM.ActiveCfg = Release|ARM
31
- {1244E671-F108-4334-BA52-8A7517F26ECD}.Release|ARM.Build.0 = Release|ARM
26
{1244E671-F108-4334-BA52-8A7517F26ECD}.Release|ARM64.ActiveCfg = Release|ARM64
27
{1244E671-F108-4334-BA52-8A7517F26ECD}.Release|ARM64.Build.0 = Release|ARM64
28
{1244E671-F108-4334-BA52-8A7517F26ECD}.Release|x64.ActiveCfg = Release|x64
29
{1244E671-F108-4334-BA52-8A7517F26ECD}.Release|x64.Build.0 = Release|x64
30
{1244E671-F108-4334-BA52-8A7517F26ECD}.Release|x86.ActiveCfg = Release|Win32
31
{1244E671-F108-4334-BA52-8A7517F26ECD}.Release|x86.Build.0 = Release|Win32
38
- {AB7EE608-E5FB-42A5-831F-0DEEEA141223}.Debug|ARM.ActiveCfg = Debug|Win32
32
{AB7EE608-E5FB-42A5-831F-0DEEEA141223}.Debug|ARM64.ActiveCfg = Debug|Win32
33
{AB7EE608-E5FB-42A5-831F-0DEEEA141223}.Debug|x64.ActiveCfg = Debug|Win32
34
{AB7EE608-E5FB-42A5-831F-0DEEEA141223}.Debug|x86.ActiveCfg = Debug|Win32
35
{AB7EE608-E5FB-42A5-831F-0DEEEA141223}.Debug|x86.Build.0 = Debug|Win32
43
- {AB7EE608-E5FB-42A5-831F-0DEEEA141223}.Release|ARM.ActiveCfg = Release|Win32
36
{AB7EE608-E5FB-42A5-831F-0DEEEA141223}.Release|ARM64.ActiveCfg = Release|Win32
37
{AB7EE608-E5FB-42A5-831F-0DEEEA141223}.Release|x64.ActiveCfg = Release|Win32
38
{AB7EE608-E5FB-42A5-831F-0DEEEA141223}.Release|x86.ActiveCfg = Release|Win32
src/dutil/buffutil.cpp
+57
-2
@@ -51,11 +51,11 @@ LExit:
51
}
52
53
extern "C" HRESULT BuffReadNumber64(
54
- __in_bcount(cbBuffer) const BYTE* pbBuffer,
54
+ __in_bcount(cbBuffer) const BYTE * pbBuffer,
55
__in SIZE_T cbBuffer,
56
__inout SIZE_T* piBuffer,
57
__out DWORD64* pdw64
58
- )
58
+)
59
{
60
Assert(pbBuffer);
61
Assert(piBuffer);
@@ -82,6 +82,38 @@ LExit:
82
return hr;
83
}
84
85
+extern "C" HRESULT BuffReadPointer(
86
+ __in_bcount(cbBuffer) const BYTE * pbBuffer,
87
+ __in SIZE_T cbBuffer,
88
+ __inout SIZE_T* piBuffer,
89
+ __out DWORD_PTR* pdw64
90
+)
91
+{
92
+ Assert(pbBuffer);
93
+ Assert(piBuffer);
94
+ Assert(pdw64);
95
+
96
+ HRESULT hr = S_OK;
97
+ SIZE_T cbAvailable = 0;
98
+
99
+ // get availiable data size
100
+ hr = ::SIZETSub(cbBuffer, *piBuffer, &cbAvailable);
101
+ ExitOnRootFailure(hr, "Failed to calculate available data size.");
102
+
103
+ // verify buffer size
104
+ if (sizeof(DWORD_PTR) > cbAvailable)
105
+ {
106
+ hr = E_INVALIDARG;
107
+ ExitOnRootFailure(hr, "Buffer too small.");
108
+ }
109
+
110
+ *pdw64 = *(const DWORD_PTR*)(pbBuffer + *piBuffer);
111
+ *piBuffer += sizeof(DWORD_PTR);
112
+
113
+LExit:
114
+ return hr;
115
+}
116
+
117
extern "C" HRESULT BuffReadString(
118
__in_bcount(cbBuffer) const BYTE* pbBuffer,
119
__in SIZE_T cbBuffer,
@@ -300,6 +332,29 @@ LExit:
332
return hr;
333
}
334
335
+extern "C" HRESULT BuffWritePointer(
336
+ __deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
337
+ __inout SIZE_T* piBuffer,
338
+ __in DWORD_PTR dw
339
+)
340
+{
341
+ Assert(ppbBuffer);
342
+ Assert(piBuffer);
343
+
344
+ HRESULT hr = S_OK;
345
+
346
+ // make sure we have a buffer with sufficient space
347
+ hr = EnsureBufferSize(ppbBuffer, *piBuffer + sizeof(DWORD_PTR));
348
+ ExitOnFailure(hr, "Failed to ensure buffer size.");
349
+
350
+ // copy data to buffer
351
+ *(DWORD_PTR*)(*ppbBuffer + *piBuffer) = dw;
352
+ *piBuffer += sizeof(DWORD_PTR);
353
+
354
+LExit:
355
+ return hr;
356
+}
357
+
358
extern "C" HRESULT BuffWriteString(
359
__deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
360
__inout SIZE_T* piBuffer,
src/dutil/dirutil.cpp
+1
-1
@@ -346,7 +346,7 @@ extern "C" HRESULT DAPI DirGetCurrent(
346
)
347
{
348
HRESULT hr = S_OK;
349
- DWORD_PTR cch = 0;
349
+ SIZE_T cch = 0;
350
351
if (psczCurrentDirectory && *psczCurrentDirectory)
352
{
src/dutil/inc/buffutil.h
+11
@@ -28,6 +28,12 @@ HRESULT BuffReadNumber64(
28
__inout SIZE_T* piBuffer,
29
__out DWORD64* pdw64
30
);
31
+HRESULT BuffReadPointer(
32
+ __in_bcount(cbBuffer) const BYTE* pbBuffer,
33
+ __in SIZE_T cbBuffer,
34
+ __inout SIZE_T* piBuffer,
35
+ __out DWORD_PTR* pdw
36
+);
37
HRESULT BuffReadString(
38
__in_bcount(cbBuffer) const BYTE* pbBuffer,
39
__in SIZE_T cbBuffer,
@@ -58,6 +64,11 @@ HRESULT BuffWriteNumber64(
64
__inout SIZE_T* piBuffer,
65
__in DWORD64 dw64
66
);
67
+HRESULT BuffWritePointer(
68
+ __deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
69
+ __inout SIZE_T* piBuffer,
70
+ __in DWORD_PTR dw
71
+);
72
HRESULT BuffWriteString(
73
__deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
74
__inout SIZE_T* piBuffer,
src/dutil/inc/pathutil.h
+1
-1
@@ -71,7 +71,7 @@ DAPI_(HRESULT) PathPrefix(
71
********************************************************************/
72
DAPI_(HRESULT) PathFixedBackslashTerminate(
73
__inout_ecount_z(cchPath) LPWSTR wzPath,
74
- __in DWORD_PTR cchPath
74
+ __in SIZE_T cchPath
75
);
76
77
/*******************************************************************
src/dutil/inc/strutil.h
+18
-18
@@ -19,11 +19,11 @@ extern "C" {
19
20
HRESULT DAPI StrAlloc(
21
__deref_out_ecount_part(cch, 0) LPWSTR* ppwz,
22
- __in DWORD_PTR cch
22
+ __in SIZE_T cch
23
);
24
HRESULT DAPI StrAllocSecure(
25
__deref_out_ecount_part(cch, 0) LPWSTR* ppwz,
26
- __in DWORD_PTR cch
26
+ __in SIZE_T cch
27
);
28
HRESULT DAPI StrTrimCapacity(
29
__deref_out_z LPWSTR* ppwz
@@ -34,7 +34,7 @@ HRESULT DAPI StrTrimWhitespace(
34
);
35
HRESULT DAPI StrAnsiAlloc(
36
__deref_out_ecount_part(cch, 0) LPSTR* ppz,
37
- __in DWORD_PTR cch
37
+ __in SIZE_T cch
38
);
39
HRESULT DAPI StrAnsiTrimCapacity(
40
__deref_out_z LPSTR* ppz
@@ -73,7 +73,7 @@ HRESULT DAPI StrAnsiAllocStringAnsi(
73
HRESULT DAPI StrAllocPrefix(
74
__deref_out_z LPWSTR* ppwz,
75
__in_z LPCWSTR wzPrefix,
76
- __in DWORD_PTR cchPrefix
76
+ __in SIZE_T cchPrefix
77
);
78
HRESULT DAPI StrAllocConcat(
79
__deref_out_z LPWSTR* ppwz,
@@ -139,11 +139,11 @@ HRESULT DAPI StrAllocFromError(
139
140
HRESULT DAPI StrMaxLength(
141
__in LPCVOID p,
142
- __out DWORD_PTR* pcch
142
+ __out SIZE_T* pcbch
143
);
144
HRESULT DAPI StrSize(
145
__in LPCVOID p,
146
- __out DWORD_PTR* pcb
146
+ __out SIZE_T* pcbb
147
);
148
149
HRESULT DAPI StrFree(
@@ -165,19 +165,19 @@ HRESULT DAPI StrReplaceString(
165
166
HRESULT DAPI StrHexEncode(
167
__in_ecount(cbSource) const BYTE* pbSource,
168
- __in DWORD_PTR cbSource,
168
+ __in SIZE_T cbSource,
169
__out_ecount(cchDest) LPWSTR wzDest,
170
- __in DWORD_PTR cchDest
170
+ __in SIZE_T cchDest
171
);
172
HRESULT DAPI StrAllocHexEncode(
173
__in_ecount(cbSource) const BYTE* pbSource,
174
- __in DWORD_PTR cbSource,
174
+ __in SIZE_T cbSource,
175
__deref_out_ecount_z(2*(cbSource+1)) LPWSTR* ppwzDest
176
);
177
HRESULT DAPI StrHexDecode(
178
__in_z LPCWSTR wzSource,
179
__out_bcount(cbDest) BYTE* pbDest,
180
- __in DWORD_PTR cbDest
180
+ __in SIZE_T cbDest
181
);
182
HRESULT DAPI StrAllocHexDecode(
183
__in_z LPCWSTR wzSource,
@@ -187,29 +187,29 @@ HRESULT DAPI StrAllocHexDecode(
187
188
HRESULT DAPI StrAllocBase85Encode(
189
__in_bcount_opt(cbSource) const BYTE* pbSource,
190
- __in DWORD_PTR cbSource,
190
+ __in SIZE_T cbSource,
191
__deref_out_z LPWSTR* pwzDest
192
);
193
HRESULT DAPI StrAllocBase85Decode(
194
__in_z LPCWSTR wzSource,
195
- __deref_out_bcount(*pcbDest) BYTE** hbDest,
196
- __out DWORD_PTR* pcbDest
197
- );
195
+ __deref_out_bcount(*pcbDest) BYTE** ppbDest,
196
+ __out SIZE_T* pcbDest
197
+);
198
199
HRESULT DAPI MultiSzLen(
200
__in_ecount(*pcch) __nullnullterminated LPCWSTR pwzMultiSz,
201
- __out DWORD_PTR* pcch
201
+ __out SIZE_T* pcbch
202
);
203
HRESULT DAPI MultiSzPrepend(
204
__deref_inout_ecount(*pcchMultiSz) __nullnullterminated LPWSTR* ppwzMultiSz,
205
- __inout_opt DWORD_PTR *pcchMultiSz,
205
+ __inout_opt SIZE_T* pcchMultiSz,
206
__in __nullnullterminated LPCWSTR pwzInsert
207
);
208
HRESULT DAPI MultiSzFindSubstring(
209
__in __nullnullterminated LPCWSTR pwzMultiSz,
210
__in __nullnullterminated LPCWSTR pwzSubstring,
211
__out_opt DWORD_PTR* pdwIndex,
212
- __deref_opt_out_z LPCWSTR* ppwzFoundIn
212
+ __deref_opt_out __nullnullterminated LPCWSTR* ppwzFoundIn
213
);
214
HRESULT DAPI MultiSzFindString(
215
__in __nullnullterminated LPCWSTR pwzMultiSz,
@@ -223,7 +223,7 @@ HRESULT DAPI MultiSzRemoveString(
223
);
224
HRESULT DAPI MultiSzInsertString(
225
__deref_inout_z LPWSTR* ppwzMultiSz,
226
- __inout_opt DWORD_PTR *pcchMultiSz,
226
+ __inout_opt SIZE_T* pcchMultiSz,
227
__in DWORD_PTR dwIndex,
228
__in_z LPCWSTR pwzInsert
229
);
src/dutil/inc/verutil.h
+2
-2
@@ -12,7 +12,7 @@ typedef struct _VERUTIL_VERSION_RELEASE_LABEL
12
{
13
BOOL fNumeric;
14
DWORD dwValue;
15
- DWORD_PTR cchLabelOffset;
15
+ SIZE_T cchLabelOffset;
16
int cchLabel;
17
} VERUTIL_VERSION_RELEASE_LABEL;
18
@@ -25,7 +25,7 @@ typedef struct _VERUTIL_VERSION
25
DWORD dwRevision;
26
DWORD cReleaseLabels;
27
VERUTIL_VERSION_RELEASE_LABEL* rgReleaseLabels;
28
- DWORD_PTR cchMetadataOffset;
28
+ SIZE_T cchMetadataOffset;
29
BOOL fInvalid;
30
} VERUTIL_VERSION;
31
src/dutil/pathutil.cpp
+3
-3
@@ -328,7 +328,7 @@ DAPI_(HRESULT) PathPrefix(
328
329
HRESULT hr = S_OK;
330
LPWSTR wzFullPath = *psczFullPath;
331
- DWORD_PTR cbFullPath = 0;
331
+ SIZE_T cbFullPath = 0;
332
333
if (((L'a' <= wzFullPath[0] && L'z' >= wzFullPath[0]) ||
334
(L'A' <= wzFullPath[0] && L'Z' >= wzFullPath[0])) &&
@@ -365,7 +365,7 @@ LExit:
365
366
DAPI_(HRESULT) PathFixedBackslashTerminate(
367
__inout_ecount_z(cchPath) LPWSTR wzPath,
368
- __in DWORD_PTR cchPath
368
+ __in SIZE_T cchPath
369
)
370
{
371
HRESULT hr = S_OK;
@@ -396,7 +396,7 @@ DAPI_(HRESULT) PathBackslashTerminate(
396
Assert(psczPath && *psczPath);
397
398
HRESULT hr = S_OK;
399
- DWORD_PTR cchPath = 0;
399
+ SIZE_T cchPath = 0;
400
size_t cchLength = 0;
401
402
hr = StrMaxLength(*psczPath, &cchPath);
src/dutil/strutil.cpp
+72
-72
@@ -7,19 +7,19 @@
7
// Forward declarations.
8
static HRESULT AllocHelper(
9
__deref_out_ecount_part(cch, 0) LPWSTR* ppwz,
10
- __in DWORD_PTR cch,
10
+ __in SIZE_T cch,
11
__in BOOL fZeroOnRealloc
12
);
13
static HRESULT AllocStringHelper(
14
__deref_out_ecount_z(cchSource + 1) LPWSTR* ppwz,
15
__in_z LPCWSTR wzSource,
16
- __in DWORD_PTR cchSource,
16
+ __in SIZE_T cchSource,
17
__in BOOL fZeroOnRealloc
18
);
19
static HRESULT AllocConcatHelper(
20
__deref_out_z LPWSTR* ppwz,
21
__in_z LPCWSTR wzSource,
22
- __in DWORD_PTR cchSource,
22
+ __in SIZE_T cchSource,
23
__in BOOL fZeroOnRealloc
24
);
25
static HRESULT AllocFormattedArgsHelper(
@@ -42,7 +42,7 @@ NOTE: caller is responsible for freeing ppwz even if function fails
42
********************************************************************/
43
extern "C" HRESULT DAPI StrAlloc(
44
__deref_out_ecount_part(cch, 0) LPWSTR* ppwz,
45
- __in DWORD_PTR cch
45
+ __in SIZE_T cch
46
)
47
{
48
return AllocHelper(ppwz, cch, FALSE);
@@ -57,7 +57,7 @@ NOTE: caller is responsible for freeing ppwz even if function fails
57
********************************************************************/
58
extern "C" HRESULT DAPI StrAllocSecure(
59
__deref_out_ecount_part(cch, 0) LPWSTR* ppwz,
60
- __in DWORD_PTR cch
60
+ __in SIZE_T cch
61
)
62
{
63
return AllocHelper(ppwz, cch, TRUE);
@@ -72,7 +72,7 @@ NOTE: caller is responsible for freeing ppwz even if function fails
72
********************************************************************/
73
static HRESULT AllocHelper(
74
__deref_out_ecount_part(cch, 0) LPWSTR* ppwz,
75
- __in DWORD_PTR cch,
75
+ __in SIZE_T cch,
76
__in BOOL fZeroOnRealloc
77
)
78
{
@@ -128,7 +128,7 @@ HRESULT DAPI StrTrimCapacity(
128
Assert(ppwz);
129
130
HRESULT hr = S_OK;
131
- DWORD_PTR cchLen = 0;
131
+ SIZE_T cchLen = 0;
132
133
hr = ::StringCchLengthW(*ppwz, STRSAFE_MAX_CCH, reinterpret_cast<UINT_PTR*>(&cchLen));
134
ExitOnFailure(hr, "Failed to calculate length of string");
@@ -201,7 +201,7 @@ NOTE: caller is responsible for freeing ppsz even if function fails
201
********************************************************************/
202
extern "C" HRESULT DAPI StrAnsiAlloc(
203
__deref_out_ecount_part(cch, 0) LPSTR* ppsz,
204
- __in DWORD_PTR cch
204
+ __in SIZE_T cch
205
)
206
{
207
Assert(ppsz && cch);
@@ -246,7 +246,7 @@ HRESULT DAPI StrAnsiTrimCapacity(
246
Assert(ppz);
247
248
HRESULT hr = S_OK;
249
- DWORD_PTR cchLen = 0;
249
+ SIZE_T cchLen = 0;
250
251
#pragma prefast(push)
252
#pragma prefast(disable:25068)
@@ -324,7 +324,7 @@ NOTE: if cchSource == 0, length of wzSource is used instead
324
extern "C" HRESULT DAPI StrAllocString(
325
__deref_out_ecount_z(cchSource+1) LPWSTR* ppwz,
326
__in_z LPCWSTR wzSource,
327
- __in DWORD_PTR cchSource
327
+ __in SIZE_T cchSource
328
)
329
{
330
return AllocStringHelper(ppwz, wzSource, cchSource, FALSE);
@@ -342,7 +342,7 @@ NOTE: if cchSource == 0, length of wzSource is used instead
342
extern "C" HRESULT DAPI StrAllocStringSecure(
343
__deref_out_ecount_z(cchSource + 1) LPWSTR* ppwz,
344
__in_z LPCWSTR wzSource,
345
- __in DWORD_PTR cchSource
345
+ __in SIZE_T cchSource
346
)
347
{
348
return AllocStringHelper(ppwz, wzSource, cchSource, TRUE);
@@ -360,14 +360,14 @@ NOTE: if cchSource == 0, length of wzSource is used instead
360
static HRESULT AllocStringHelper(
361
__deref_out_ecount_z(cchSource + 1) LPWSTR* ppwz,
362
__in_z LPCWSTR wzSource,
363
- __in DWORD_PTR cchSource,
363
+ __in SIZE_T cchSource,
364
__in BOOL fZeroOnRealloc
365
)
366
{
367
Assert(ppwz && wzSource); // && *wzSource);
368
369
HRESULT hr = S_OK;
370
- DWORD_PTR cch = 0;
370
+ SIZE_T cch = 0;
371
372
if (*ppwz)
373
{
@@ -385,7 +385,7 @@ static HRESULT AllocStringHelper(
385
cchSource = lstrlenW(wzSource);
386
}
387
388
- DWORD_PTR cchNeeded;
388
+ SIZE_T cchNeeded;
389
hr = ::ULongPtrAdd(cchSource, 1, &cchNeeded); // add one for the null terminator
390
ExitOnFailure(hr, "source string is too long");
391
@@ -414,7 +414,7 @@ NOTE: if cchSource == 0, length of wzSource is used instead
414
extern "C" HRESULT DAPI StrAnsiAllocString(
415
__deref_out_ecount_z(cchSource+1) LPSTR* ppsz,
416
__in_z LPCWSTR wzSource,
417
- __in DWORD_PTR cchSource,
417
+ __in SIZE_T cchSource,
418
__in UINT uiCodepage
419
)
420
{
@@ -422,8 +422,8 @@ extern "C" HRESULT DAPI StrAnsiAllocString(
422
423
HRESULT hr = S_OK;
424
LPSTR psz = NULL;
425
- DWORD_PTR cch = 0;
426
- DWORD_PTR cchDest = cchSource; // at least enough
425
+ SIZE_T cch = 0;
426
+ SIZE_T cchDest = cchSource; // at least enough
427
428
if (*ppsz)
429
{
@@ -494,7 +494,7 @@ NOTE: if cchSource == 0, length of wzSource is used instead
494
extern "C" HRESULT DAPI StrAllocStringAnsi(
495
__deref_out_ecount_z(cchSource+1) LPWSTR* ppwz,
496
__in_z LPCSTR szSource,
497
- __in DWORD_PTR cchSource,
497
+ __in SIZE_T cchSource,
498
__in UINT uiCodepage
499
)
500
{
@@ -502,8 +502,8 @@ extern "C" HRESULT DAPI StrAllocStringAnsi(
502
503
HRESULT hr = S_OK;
504
LPWSTR pwz = NULL;
505
- DWORD_PTR cch = 0;
506
- DWORD_PTR cchDest = cchSource; // at least enough
505
+ SIZE_T cch = 0;
506
+ SIZE_T cchDest = cchSource; // at least enough
507
508
if (*ppwz)
509
{
@@ -575,13 +575,13 @@ NOTE: if cchSource == 0, length of wzSource is used instead
575
HRESULT DAPI StrAnsiAllocStringAnsi(
576
__deref_out_ecount_z(cchSource+1) LPSTR* ppsz,
577
__in_z LPCSTR szSource,
578
- __in DWORD_PTR cchSource
578
+ __in SIZE_T cchSource
579
)
580
{
581
Assert(ppsz && szSource); // && *szSource);
582
583
HRESULT hr = S_OK;
584
- DWORD_PTR cch = 0;
584
+ SIZE_T cch = 0;
585
586
if (*ppsz)
587
{
@@ -599,7 +599,7 @@ HRESULT DAPI StrAnsiAllocStringAnsi(
599
cchSource = lstrlenA(szSource);
600
}
601
602
- DWORD_PTR cchNeeded;
602
+ SIZE_T cchNeeded;
603
hr = ::ULongPtrAdd(cchSource, 1, &cchNeeded); // add one for the null terminator
604
ExitOnFailure(hr, "source string is too long");
605
@@ -632,14 +632,14 @@ NOTE: if cchPrefix == 0, length of wzPrefix is used instead
632
extern "C" HRESULT DAPI StrAllocPrefix(
633
__deref_out_z LPWSTR* ppwz,
634
__in_z LPCWSTR wzPrefix,
635
- __in DWORD_PTR cchPrefix
635
+ __in SIZE_T cchPrefix
636
)
637
{
638
Assert(ppwz && wzPrefix);
639
640
HRESULT hr = S_OK;
641
- DWORD_PTR cch = 0;
642
- DWORD_PTR cchLen = 0;
641
+ SIZE_T cch = 0;
642
+ SIZE_T cchLen = 0;
643
644
if (*ppwz)
645
{
@@ -672,8 +672,8 @@ extern "C" HRESULT DAPI StrAllocPrefix(
672
673
if (*ppwz)
674
{
675
- DWORD_PTR cb = cch * sizeof(WCHAR);
676
- DWORD_PTR cbPrefix = cchPrefix * sizeof(WCHAR);
675
+ SIZE_T cb = cch * sizeof(WCHAR);
676
+ SIZE_T cbPrefix = cchPrefix * sizeof(WCHAR);
677
678
memmove(*ppwz + cchPrefix, *ppwz, cb - cbPrefix);
679
memcpy(*ppwz, wzPrefix, cbPrefix);
@@ -699,7 +699,7 @@ NOTE: if cchSource == 0, length of wzSource is used instead
699
extern "C" HRESULT DAPI StrAllocConcat(
700
__deref_out_z LPWSTR* ppwz,
701
__in_z LPCWSTR wzSource,
702
- __in DWORD_PTR cchSource
702
+ __in SIZE_T cchSource
703
)
704
{
705
return AllocConcatHelper(ppwz, wzSource, cchSource, FALSE);
@@ -718,7 +718,7 @@ NOTE: if cchSource == 0, length of wzSource is used instead
718
extern "C" HRESULT DAPI StrAllocConcatSecure(
719
__deref_out_z LPWSTR* ppwz,
720
__in_z LPCWSTR wzSource,
721
- __in DWORD_PTR cchSource
721
+ __in SIZE_T cchSource
722
)
723
{
724
return AllocConcatHelper(ppwz, wzSource, cchSource, TRUE);
@@ -737,15 +737,15 @@ NOTE: if cchSource == 0, length of wzSource is used instead
737
static HRESULT AllocConcatHelper(
738
__deref_out_z LPWSTR* ppwz,
739
__in_z LPCWSTR wzSource,
740
- __in DWORD_PTR cchSource,
740
+ __in SIZE_T cchSource,
741
__in BOOL fZeroOnRealloc
742
)
743
{
744
Assert(ppwz && wzSource); // && *wzSource);
745
746
HRESULT hr = S_OK;
747
- DWORD_PTR cch = 0;
748
- DWORD_PTR cchLen = 0;
747
+ SIZE_T cch = 0;
748
+ SIZE_T cchLen = 0;
749
750
if (*ppwz)
751
{
@@ -801,14 +801,14 @@ NOTE: if cchSource == 0, length of pzSource is used instead
801
extern "C" HRESULT DAPI StrAnsiAllocConcat(
802
__deref_out_z LPSTR* ppz,
803
__in_z LPCSTR pzSource,
804
- __in DWORD_PTR cchSource
804
+ __in SIZE_T cchSource
805
)
806
{
807
Assert(ppz && pzSource); // && *pzSource);
808
809
HRESULT hr = S_OK;
810
- DWORD_PTR cch = 0;
811
- DWORD_PTR cchLen = 0;
810
+ SIZE_T cch = 0;
811
+ SIZE_T cchLen = 0;
812
813
if (*ppz)
814
{
@@ -842,7 +842,7 @@ extern "C" HRESULT DAPI StrAnsiAllocConcat(
842
{
843
cch = (cchSource + cchLen + 1) * 2;
844
hr = StrAnsiAlloc(ppz, cch);
845
- ExitOnFailure(hr, "failed to allocate string from string: %ls", pzSource);
845
+ ExitOnFailure(hr, "failed to allocate string from string: %hs", pzSource);
846
}
847
848
if (*ppz)
@@ -1138,7 +1138,7 @@ extern "C" HRESULT DAPI StrAnsiAllocFormattedArgs(
1138
Assert(ppsz && szFormat && *szFormat);
1139
1140
HRESULT hr = S_OK;
1141
- DWORD_PTR cch = *ppsz ? MemSize(*ppsz) / sizeof(CHAR) : 0;
1141
+ SIZE_T cch = *ppsz ? MemSize(*ppsz) / sizeof(CHAR) : 0;
1142
LPSTR pszOriginal = NULL;
1143
DWORD cchOriginal = 0;
1144
@@ -1183,7 +1183,7 @@ extern "C" HRESULT DAPI StrAnsiAllocFormattedArgs(
1183
}
1184
cch *= 2;
1185
hr = StrAnsiAlloc(ppsz, cch);
1186
- ExitOnFailure(hr, "failed to allocate string to format: %ls", szFormat);
1186
+ ExitOnFailure(hr, "failed to allocate string to format: %hs", szFormat);
1187
hr = S_FALSE;
1188
}
1189
} while (S_FALSE == hr);
@@ -1247,7 +1247,7 @@ NOTE: assumes Unicode string
1247
********************************************************************/
1248
extern "C" HRESULT DAPI StrMaxLength(
1249
__in LPCVOID p,
1250
- __out DWORD_PTR* pcch
1250
+ __out SIZE_T* pcch
1251
)
1252
{
1253
Assert(pcch);
@@ -1281,7 +1281,7 @@ StrSize - returns count of bytes in dynamic string p
1281
********************************************************************/
1282
extern "C" HRESULT DAPI StrSize(
1283
__in LPCVOID p,
1284
- __out DWORD_PTR* pcb
1284
+ __out SIZE_T* pcb
1285
)
1286
{
1287
Assert(p && pcb);
@@ -1430,9 +1430,9 @@ NOTE: wzDest must have space for cbSource * 2 + 1 characters
1430
****************************************************************************/
1431
extern "C" HRESULT DAPI StrHexEncode(
1432
__in_ecount(cbSource) const BYTE* pbSource,
1433
- __in DWORD_PTR cbSource,
1433
+ __in SIZE_T cbSource,
1434
__out_ecount(cchDest) LPWSTR wzDest,
1435
- __in DWORD_PTR cchDest
1435
+ __in SIZE_T cchDest
1436
)
1437
{
1438
Assert(pbSource && wzDest);
@@ -1469,12 +1469,12 @@ StrAllocHexEncode - converts an array of bytes to an allocated text string
1469
****************************************************************************/
1470
HRESULT DAPI StrAllocHexEncode(
1471
__in_ecount(cbSource) const BYTE* pbSource,
1472
- __in DWORD_PTR cbSource,
1472
+ __in SIZE_T cbSource,
1473
__deref_out_ecount_z(2*(cbSource+1)) LPWSTR* ppwzDest
1474
)
1475
{
1476
HRESULT hr = S_OK;
1477
- DWORD_PTR cchSource = sizeof(WCHAR) * (cbSource + 1);
1477
+ SIZE_T cchSource = sizeof(WCHAR) * (cbSource + 1);
1478
1479
hr = StrAlloc(ppwzDest, cchSource);
1480
ExitOnFailure(hr, "Failed to allocate hex string.");
@@ -1495,7 +1495,7 @@ NOTE: wzSource must contain even number of characters
1495
extern "C" HRESULT DAPI StrHexDecode(
1496
__in_z LPCWSTR wzSource,
1497
__out_bcount(cbDest) BYTE* pbDest,
1498
- __in DWORD_PTR cbDest
1498
+ __in SIZE_T cbDest
1499
)
1500
{
1501
Assert(wzSource && pbDest);
@@ -1612,12 +1612,12 @@ StrAllocBase85Encode - converts an array of bytes into an XML compatible string
1612
****************************************************************************/
1613
extern "C" HRESULT DAPI StrAllocBase85Encode(
1614
__in_bcount_opt(cbSource) const BYTE* pbSource,
1615
- __in DWORD_PTR cbSource,
1615
+ __in SIZE_T cbSource,
1616
__deref_out_z LPWSTR* pwzDest
1617
)
1618
{
1619
HRESULT hr = S_OK;
1620
- DWORD_PTR cchDest = 0;
1620
+ SIZE_T cchDest = 0;
1621
LPWSTR wzDest;
1622
DWORD_PTR iSource = 0;
1623
DWORD_PTR iDest = 0;
@@ -1709,15 +1709,15 @@ NOTE: Use MemFree() to release the allocated stream of bytes
1709
extern "C" HRESULT DAPI StrAllocBase85Decode(
1710
__in_z LPCWSTR wzSource,
1711
__deref_out_bcount(*pcbDest) BYTE** ppbDest,
1712
- __out DWORD_PTR* pcbDest
1712
+ __out SIZE_T* pcbDest
1713
)
1714
{
1715
HRESULT hr = S_OK;
1716
- DWORD_PTR cchSource = lstrlenW(wzSource);
1716
+ SIZE_T cchSource = lstrlenW(wzSource);
1717
DWORD_PTR i, n, k;
1718
1719
BYTE* pbDest;
1720
- DWORD_PTR cbDest;
1720
+ SIZE_T cbDest;
1721
1722
if (!wzSource || !ppbDest || !pcbDest)
1723
{
@@ -1849,9 +1849,9 @@ including the double null terminator at the end of the MULTISZ.
1849
NOTE: returns 0 if the multisz in not properly terminated with two nulls
1850
****************************************************************************/
1851
extern "C" HRESULT DAPI MultiSzLen(
1852
- __in __nullnullterminated LPCWSTR pwzMultiSz,
1853
- __out DWORD_PTR* pcch
1854
- )
1852
+ __in_ecount(*pcch) __nullnullterminated LPCWSTR pwzMultiSz,
1853
+ __out SIZE_T* pcch
1854
+)
1855
{
1856
Assert(pcch);
1857
@@ -1894,7 +1894,7 @@ MultiSzPrepend - prepends a string onto the front of a MUTLISZ
1894
****************************************************************************/
1895
extern "C" HRESULT DAPI MultiSzPrepend(
1896
__deref_inout_ecount(*pcchMultiSz) __nullnullterminated LPWSTR* ppwzMultiSz,
1897
- __inout_opt DWORD_PTR *pcchMultiSz,
1897
+ __inout_opt SIZE_T* pcchMultiSz,
1898
__in __nullnullterminated LPCWSTR pwzInsert
1899
)
1900
{
@@ -1902,9 +1902,9 @@ extern "C" HRESULT DAPI MultiSzPrepend(
1902
1903
HRESULT hr =S_OK;
1904
LPWSTR pwzResult = NULL;
1905
- DWORD_PTR cchResult = 0;
1906
- DWORD_PTR cchInsert = 0;
1907
- DWORD_PTR cchMultiSz = 0;
1905
+ SIZE_T cchResult = 0;
1906
+ SIZE_T cchInsert = 0;
1907
+ SIZE_T cchMultiSz = 0;
1908
1909
// Get the lengths of the MULTISZ (and prime it if it's not initialized)
1910
if (pcchMultiSz && 0 != *pcchMultiSz)
@@ -1979,8 +1979,8 @@ extern "C" HRESULT DAPI MultiSzFindSubstring(
1979
HRESULT hr = S_FALSE; // Assume we won't find it (the glass is half empty)
1980
LPCWSTR wz = pwzMultiSz;
1981
DWORD_PTR dwIndex = 0;
1982
- DWORD_PTR cchMultiSz = 0;
1983
- DWORD_PTR cchProgress = 0;
1982
+ SIZE_T cchMultiSz = 0;
1983
+ SIZE_T cchProgress = 0;
1984
1985
hr = MultiSzLen(pwzMultiSz, &cchMultiSz);
1986
ExitOnFailure(hr, "failed to get the length of a MULTISZ string");
@@ -2045,8 +2045,8 @@ extern "C" HRESULT DAPI MultiSzFindString(
2045
HRESULT hr = S_FALSE; // Assume we won't find it
2046
LPCWSTR wz = pwzMultiSz;
2047
DWORD_PTR dwIndex = 0;
2048
- DWORD_PTR cchMutliSz = 0;
2049
- DWORD_PTR cchProgress = 0;
2048
+ SIZE_T cchMutliSz = 0;
2049
+ SIZE_T cchProgress = 0;
2050
2051
hr = MultiSzLen(pwzMultiSz, &cchMutliSz);
2052
ExitOnFailure(hr, "failed to get the length of a MULTISZ string");
@@ -2112,8 +2112,8 @@ extern "C" HRESULT DAPI MultiSzRemoveString(
2112
LPCWSTR wz = *ppwzMultiSz;
2113
LPCWSTR wzNext = NULL;
2114
DWORD_PTR dwCurrentIndex = 0;
2115
- DWORD_PTR cchMultiSz = 0;
2116
- DWORD_PTR cchProgress = 0;
2115
+ SIZE_T cchMultiSz = 0;
2116
+ SIZE_T cchProgress = 0;
2117
2118
hr = MultiSzLen(*ppwzMultiSz, &cchMultiSz);
2119
ExitOnFailure(hr, "failed to get the length of a MULTISZ string");
@@ -2179,7 +2179,7 @@ MultiSzInsertString - inserts new string at the specified index
2179
****************************************************************************/
2180
extern "C" HRESULT DAPI MultiSzInsertString(
2181
__deref_inout __nullnullterminated LPWSTR* ppwzMultiSz,
2182
- __inout_opt DWORD_PTR *pcchMultiSz,
2182
+ __inout_opt SIZE_T* pcchMultiSz,
2183
__in DWORD_PTR dwIndex,
2184
__in __nullnullterminated LPCWSTR pwzInsert
2185
)
@@ -2189,11 +2189,11 @@ extern "C" HRESULT DAPI MultiSzInsertString(
2189
HRESULT hr = S_OK;
2190
LPCWSTR wz = *ppwzMultiSz;
2191
DWORD_PTR dwCurrentIndex = 0;
2192
- DWORD_PTR cchProgress = 0;
2192
+ SIZE_T cchProgress = 0;
2193
LPWSTR pwzResult = NULL;
2194
- DWORD_PTR cchResult = 0;
2195
- DWORD_PTR cchString = lstrlenW(pwzInsert);
2196
- DWORD_PTR cchMultiSz = 0;
2194
+ SIZE_T cchResult = 0;
2195
+ SIZE_T cchString = lstrlenW(pwzInsert);
2196
+ SIZE_T cchMultiSz = 0;
2197
2198
if (pcchMultiSz && 0 != *pcchMultiSz)
2199
{
@@ -2302,7 +2302,7 @@ extern "C" LPCWSTR DAPI wcsistr(
2302
{
2303
LPCWSTR wzSource = wzString;
2304
LPCWSTR wzSearch = NULL;
2305
- DWORD_PTR cchSourceIndex = 0;
2305
+ SIZE_T cchSourceIndex = 0;
2306
2307
// Walk through wzString (the source string) one character at a time
2308
while (*wzSource)
@@ -2600,7 +2600,7 @@ extern "C" HRESULT DAPI StrArrayAllocString(
2600
__deref_inout_ecount_opt(*pcStrArray) LPWSTR **prgsczStrArray,
2601
__inout LPUINT pcStrArray,
2602
__in_z LPCWSTR wzSource,
2603
- __in DWORD_PTR cchSource
2603
+ __in SIZE_T cchSource
2604
)
2605
{
2606
HRESULT hr = S_OK;
@@ -2726,7 +2726,7 @@ extern "C" DAPI_(HRESULT) StrSecureZeroString(
2726
)
2727
{
2728
HRESULT hr = S_OK;
2729
- DWORD_PTR cch;
2729
+ SIZE_T cch;
2730
2731
if (pwz)
2732
{