@joebigelow / wix-1 / commits / 0ae3b1e7

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 {