Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: src/installer-ca/dutil/strutil.h

Issue 11521026: initial custom action library, "hello, world" quality (Closed)
Patch Set: Created Sept. 3, 2013, 12:48 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/installer-ca/dutil/strutil.h
===================================================================
new file mode 100644
--- /dev/null
+++ b/src/installer-ca/dutil/strutil.h
@@ -0,0 +1,123 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="strutil.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>
+// Header for string helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ReleaseStr(pwz) if (pwz) { StrFree(pwz); }
+#define ReleaseNullStr(pwz) if (pwz) { StrFree(pwz); pwz = NULL; }
+#define ReleaseBSTR(bstr) if (bstr) { ::SysFreeString(bstr); }
+#define ReleaseNullBSTR(bstr) if (bstr) { ::SysFreeString(bstr); bstr = NULL; }
+#define ReleaseStrArray(rg, c) { if (rg) { StrArrayFree(rg, c); } }
+#define ReleaseNullStrArray(rg, c) { if (rg) { StrArrayFree(rg, c); c = 0; rg = NULL; } }
+
+#define DeclareConstBSTR(bstr_const, wz) const WCHAR bstr_const[] = { 0x00, 0x00, sizeof(wz)-sizeof(WCHAR), 0x00, wz }
+#define UseConstBSTR(bstr_const) const_cast<BSTR>(bstr_const + 4)
+
+HRESULT DAPI StrAlloc(
+ __deref_out_ecount_part(cch, 0) LPWSTR* ppwz,
+ __in DWORD_PTR cch
+ );
+HRESULT DAPI StrTrimCapacity(
+ __deref_out_z LPWSTR* ppwz
+ );
+HRESULT DAPI StrTrimWhitespace(
+ __deref_out_z LPWSTR* ppwz,
+ __in_z LPCWSTR wzSource
+ );
+
+HRESULT DAPI StrAllocString(
+ __deref_out_ecount_z(cchSource+1) LPWSTR* ppwz,
+ __in_z LPCWSTR wzSource,
+ __in DWORD_PTR cchSource
+ );
+
+
+HRESULT DAPI StrAllocConcat(
+ __deref_out_z LPWSTR* ppwz,
+ __in_z LPCWSTR wzSource,
+ __in DWORD_PTR cchSource
+ );
+HRESULT __cdecl StrAllocFormatted(
+ __deref_out_z LPWSTR* ppwz,
+ __in __format_string LPCWSTR wzFormat,
+ ...
+ );
+HRESULT DAPI StrAllocFormattedArgs(
+ __deref_out_z LPWSTR* ppwz,
+ __in __format_string LPCWSTR wzFormat,
+ __in va_list args
+ );
+
+HRESULT DAPI StrMaxLength(
+ __in LPCVOID p,
+ __out DWORD_PTR* pcch
+ );
+HRESULT DAPI StrSize(
+ __in LPCVOID p,
+ __out DWORD_PTR* pcb
+ );
+
+HRESULT DAPI StrFree(
+ __in LPVOID p
+ );
+
+
+LPCWSTR wcsistr(
+ __in_z LPCWSTR wzString,
+ __in_z LPCWSTR wzCharSet
+ );
+
+HRESULT DAPI StrStringToInt16(
+ __in_z LPCWSTR wzIn,
+ __in DWORD cchIn,
+ __out SHORT* psOut
+ );
+HRESULT DAPI StrStringToUInt16(
+ __in_z LPCWSTR wzIn,
+ __in DWORD cchIn,
+ __out USHORT* pusOut
+ );
+HRESULT DAPI StrStringToInt32(
+ __in_z LPCWSTR wzIn,
+ __in DWORD cchIn,
+ __out INT* piOut
+ );
+HRESULT DAPI StrStringToUInt32(
+ __in_z LPCWSTR wzIn,
+ __in DWORD cchIn,
+ __out UINT* puiOut
+ );
+HRESULT DAPI StrStringToInt64(
+ __in_z LPCWSTR wzIn,
+ __in DWORD cchIn,
+ __out LONGLONG* pllOut
+ );
+HRESULT DAPI StrStringToUInt64(
+ __in_z LPCWSTR wzIn,
+ __in DWORD cchIn,
+ __out ULONGLONG* pullOut
+ );
+void DAPI StrStringToUpper(
+ __inout_z LPWSTR wzIn
+ );
+void DAPI StrStringToLower(
+ __inout_z LPWSTR wzIn
+ );
+
+
+#ifdef __cplusplus
+}
+#endif

Powered by Google App Engine
This is Rietveld