ReactOS 0.4.15-dev-8076-g06e89b2
chstring.h
Go to the documentation of this file.
1#pragma once
2
3#ifndef _CHSTRING_H
4#define _CHSTRING_H
5
6#include <windows.h>
7#include <provexce.h>
8
9/*
10 * Framedyn dates from ancient times when wchar_t was a typedef to unsigned short.
11 * In order be able to use newer compilers, we define inline overloaded wrappers.
12 */
13using CHSTRING_WCHAR=unsigned short ;
16static_assert(sizeof(CHSTRING_WCHAR) == sizeof(wchar_t), "CHSTRING_WCHAR must be of same size than wchar_t");
17
18
20{
21 long nRefs;
24
26 {
27 return (CHSTRING_WCHAR*)(this+1);
28 }
29};
30
32{
33public:
34 CHString();
35 CHString(CHSTRING_WCHAR ch, int nRepeat = 1);
38 CHString(LPCSTR lpsz);
39 CHString(const CHString& stringSrc);
40 CHString(const unsigned char* lpsz);
41 ~CHString();
42
44 int Collate(CHSTRING_LPCWSTR lpsz) const;
45 int Collate(const wchar_t* lpsz) const
46 {
47 return Collate(reinterpret_cast<CHSTRING_LPCWSTR>(lpsz));
48 }
49 int Compare(CHSTRING_LPCWSTR lpsz) const;
50 int Compare(const wchar_t* lpsz) const
51 {
52 return Compare(reinterpret_cast<CHSTRING_LPCWSTR>(lpsz));
53 }
54 int CompareNoCase(CHSTRING_LPCWSTR lpsz) const;
55 int CompareNoCase(const wchar_t* lpsz) const
56 {
57 return CompareNoCase(reinterpret_cast<CHSTRING_LPCWSTR>(lpsz));
58 }
59 void Empty();
60 int Find(CHSTRING_WCHAR ch) const;
61 int Find(CHSTRING_LPCWSTR lpszSub) const;
62 int Find(const wchar_t* lpszSub) const
63 {
64 return FindOneOf(reinterpret_cast<CHSTRING_LPCWSTR>(lpszSub));
65 }
66 int FindOneOf(CHSTRING_LPCWSTR lpszCharSet) const;
67 int FindOneOf(const wchar_t* lpszCharSet) const
68 {
69 return FindOneOf(reinterpret_cast<CHSTRING_LPCWSTR>(lpszCharSet));
70 }
71 void Format(UINT nFormatID, ...);
72 void Format(CHSTRING_LPCWSTR lpszFormat, ...);
73 template <typename ...Params>
74 void Format(const wchar_t* lpszFormat, Params&&... params)
75 {
76 Format(reinterpret_cast<CHSTRING_LPCWSTR>(lpszFormat), params...);
77 }
78 void FormatMessageW(UINT nFormatID, ...);
79 void FormatMessageW(CHSTRING_LPCWSTR lpszFormat, ...);
80 template <typename ...Params>
81 void FormatMessageW(const wchar_t* lpszFormat, Params&&... params)
82 {
83 FormatMessageW(reinterpret_cast<CHSTRING_LPCWSTR>(lpszFormat), params...);
84 }
85 void FormatV(CHSTRING_LPCWSTR lpszFormat, va_list argList);
86 void FormatV(const wchar_t* lpszFormat, va_list argList)
87 {
88 return FormatV(reinterpret_cast<CHSTRING_LPCWSTR>(lpszFormat), argList);
89 }
90 void FreeExtra();
91 int GetAllocLength() const;
92 CHSTRING_WCHAR GetAt(int nIndex) const;
93 CHSTRING_LPWSTR GetBuffer(int nMinBufLength);
94 CHSTRING_LPWSTR GetBufferSetLength(int nNewLength);
95 int GetLength() const;
96 BOOL IsEmpty() const;
97 CHString Left(int nCount) const;
98 int LoadStringW(UINT nID);
100 void MakeLower();
101 void MakeReverse();
102 void MakeUpper();
103 CHString Mid(int nFirst) const;
104 CHString Mid(int nFirst, int nCount) const;
105 void ReleaseBuffer(int nNewLength = -1);
106 int ReverseFind(CHSTRING_WCHAR ch) const;
107 CHString Right(int nCount) const;
108 void SetAt(int nIndex, CHSTRING_WCHAR ch);
109 CHString SpanExcluding(CHSTRING_LPCWSTR lpszCharSet) const;
110 CHString SpanExcluding(const wchar_t* lpszCharSet) const
111 {
112 return SpanExcluding(reinterpret_cast<CHSTRING_LPCWSTR>(lpszCharSet));
113 }
114 CHString SpanIncluding(CHSTRING_LPCWSTR lpszCharSet) const;
115 CHString SpanIncluding(const wchar_t* lpszCharSet) const
116 {
117 return SpanIncluding(reinterpret_cast<CHSTRING_LPCWSTR>(lpszCharSet));
118 }
119 void TrimLeft();
120 void TrimRight();
121 void UnlockBuffer();
122
123 const CHString& operator=(char ch);
125 const CHString& operator=(CHString *p);
126 const CHString& operator=(LPCSTR lpsz);
128 const CHString& operator=(const CHString& stringSrc);
129 const CHString& operator=(const unsigned char* lpsz);
130
131 const CHString& operator+=(char ch);
134 const CHString& operator+=(const CHString& string);
135
136 CHSTRING_WCHAR operator[](int nIndex) const;
137
138 operator CHSTRING_LPCWSTR() const;
139
140 friend CHString WINAPI operator+(CHSTRING_WCHAR ch, const CHString& string);
141 friend CHString WINAPI operator+(const CHString& string, CHSTRING_WCHAR ch);
142 friend CHString WINAPI operator+(const CHString& string, CHSTRING_LPCWSTR lpsz);
143 friend CHString WINAPI operator+(CHSTRING_LPCWSTR lpsz, const CHString& string);
145
146protected:
148
149 void AllocBeforeWrite(int nLen);
150 void AllocBuffer(int nLen);
151 void AllocCopy(CHString& dest, int nCopyLen, int nCopyIndex, int nExtraLen) const;
152 void AssignCopy(int nSrcLen, CHSTRING_LPCWSTR lpszSrcData);
153 void AssignCopy(int nSrcLen, const wchar_t* lpszSrcData)
154 {
155 AssignCopy(nSrcLen, reinterpret_cast<CHSTRING_LPCWSTR>(lpszSrcData));
156 }
157 void ConcatCopy(int nSrc1Len, CHSTRING_LPCWSTR lpszSrc1Data, int nSrc2Len, CHSTRING_LPCWSTR lpszSrc2Data);
158 void ConcatCopy(int nSrc1Len, const wchar_t* lpszSrc1Data, int nSrc2Len, const wchar_t* lpszSrc2Data)
159 {
160 ConcatCopy(nSrc1Len, reinterpret_cast<CHSTRING_LPCWSTR>(lpszSrc1Data), nSrc2Len, reinterpret_cast<CHSTRING_LPCWSTR>(lpszSrc2Data));
161 }
162 void ConcatInPlace(int nSrcLen, CHSTRING_LPCWSTR lpszSrcData);
163 void ConcatInPlace(int nSrcLen, const wchar_t* lpszSrcData)
164 {
165 ConcatInPlace(nSrcLen, reinterpret_cast<CHSTRING_LPCWSTR>(lpszSrcData));
166 }
167 void CopyBeforeWrite();
168 CHStringData* GetData() const;
169 void Init();
170 int LoadStringW(UINT nID, CHSTRING_LPWSTR lpszBuf, UINT nMaxBuf);
171 void Release();
172 static void WINAPI Release(CHStringData* pData);
173 static int WINAPI SafeStrlen(CHSTRING_LPCWSTR lpsz);
174 static int WINAPI SafeStrlen(const wchar_t* lpsz)
175 {
176 return SafeStrlen(reinterpret_cast<CHSTRING_LPCWSTR>(lpsz));
177 }
178};
179
180inline BOOL operator==(const CHString& s1, CHSTRING_LPCWSTR s2) { return s1.Compare(s2) == 0; }
181inline BOOL operator==(const CHString& s1, const CHString& s2) { return s1.Compare(s2) == 0; }
182
183inline BOOL operator!=(const CHString& s1, CHSTRING_LPCWSTR s2) { return s1.Compare(s2) != 0; }
184inline BOOL operator!=(const CHString& s1, const CHString& s2) { return s1.Compare(s2) != 0; }
185
186inline BOOL operator<(const CHString& s1, CHSTRING_LPCWSTR s2) { return s1.Compare(s2) < 0; }
187inline BOOL operator<(const CHString& s1, const CHString& s2) { return s1.Compare(s2) < 0; }
188
189inline BOOL operator>(const CHString& s1, CHSTRING_LPCWSTR s2) { return s1.Compare(s2) > 0; }
190inline BOOL operator>(const CHString& s1, const CHString& s2) { return s1.Compare(s2) > 0; }
191
192inline BOOL operator<=(const CHString& s1, CHSTRING_LPCWSTR s2) { return s1.Compare(s2) <= 0; }
193inline BOOL operator<=(const CHString& s1, const CHString& s2) { return s1.Compare(s2) <= 0; }
194
195inline BOOL operator>=(const CHString& s1, CHSTRING_LPCWSTR s2) { return s1.Compare(s2) >= 0; }
196inline BOOL operator>=(const CHString& s1, const CHString& s2) { return s1.Compare(s2) >= 0; }
197
198/* Have GCC link to the symbols exported by framedyn.dll */
199#if defined(__GNUC__) && !defined(CHSTRING_BUILD)
200
201#define DEFINE_FRAMEDYN_ALIAS(alias, orig) __asm__(".set " #alias ", \"" #orig "\"");
202
203#ifdef _M_IX86
204DEFINE_FRAMEDYN_ALIAS(__ZN8CHString16AllocBeforeWriteEi, ?AllocBeforeWrite@CHString@@IAEXH@Z)
205DEFINE_FRAMEDYN_ALIAS(__ZN8CHString11AllocBufferEi, ?AllocBuffer@CHString@@IAEXH@Z)
206DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString9AllocCopyERS_iii, ?AllocCopy@CHString@@IBEXAAV1@HHH@Z)
207DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString14AllocSysStringEv, ?AllocSysString@CHString@@QBEPAGXZ)
208DEFINE_FRAMEDYN_ALIAS(__ZN8CHString10AssignCopyEiPKt, ?AssignCopy@CHString@@IAEXHPBG@Z)
209DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringC1ERKS_, ??0CHString@@QAE@ABV0@@Z)
210DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringC1EPKc, ??0CHString@@QAE@PBD@Z)
211DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringC1EPKh, ??0CHString@@QAE@PBE@Z)
212DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringC1EPKt, ??0CHString@@QAE@PBG@Z)
213DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringC1EPKti, ??0CHString@@QAE@PBGH@Z)
214DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringC1Eti, ??0CHString@@QAE@GH@Z)
215DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringC1Ev, ??0CHString@@QAE@XZ)
216DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringC2Ev, ??0CHString@@QAE@XZ) // CHString::CHString(void)
217DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString7CollateEPKt, ?Collate@CHString@@QBEHPBG@Z)
218DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString7CompareEPKt, ?Compare@CHString@@QBEHPBG@Z)
219DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString13CompareNoCaseEPKt, ?CompareNoCase@CHString@@QBEHPBG@Z)
220DEFINE_FRAMEDYN_ALIAS(__ZN8CHString10ConcatCopyEiPKtiS1_, ?ConcatCopy@CHString@@IAEXHPBGH0@Z)
221DEFINE_FRAMEDYN_ALIAS(__ZN8CHString13ConcatInPlaceEiPKt, ?ConcatInPlace@CHString@@IAEXHPBG@Z)
222DEFINE_FRAMEDYN_ALIAS(__ZN8CHString15CopyBeforeWriteEv, ?CopyBeforeWrite@CHString@@IAEXXZ)
223DEFINE_FRAMEDYN_ALIAS(__ZN8CHString5EmptyEv, ?Empty@CHString@@QAEXXZ)
224DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString4FindEPKt, ?Find@CHString@@QBEHPBG@Z)
225DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString4FindEt, ?Find@CHString@@QBEHG@Z)
226DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString9FindOneOfEPKt, ?FindOneOf@CHString@@QBEHPBG@Z)
227DEFINE_FRAMEDYN_ALIAS(__ZN8CHString6FormatEjz, ?Format@CHString@@QAAXIZZ)
228DEFINE_FRAMEDYN_ALIAS(__ZN8CHString6FormatEPKtz, ?Format@CHString@@QAAXPBGZZ)
229DEFINE_FRAMEDYN_ALIAS(__ZN8CHString14FormatMessageWEjz, ?FormatMessageW@CHString@@QAAXIZZ)
230DEFINE_FRAMEDYN_ALIAS(__ZN8CHString14FormatMessageWEPKtz, ?FormatMessageW@CHString@@QAAXPBGZZ)
231DEFINE_FRAMEDYN_ALIAS(__ZN8CHString7FormatVEPKtPc, ?FormatV@CHString@@QAEXPBGPAD@Z)
232DEFINE_FRAMEDYN_ALIAS(__ZN8CHString9FreeExtraEv, ?FreeExtra@CHString@@QAEXXZ)
233DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString14GetAllocLengthEv, ?GetAllocLength@CHString@@QBEHXZ)
234DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString5GetAtEi, ?GetAt@CHString@@QBEGH@Z)
235DEFINE_FRAMEDYN_ALIAS(__ZN8CHString9GetBufferEi, ?GetBuffer@CHString@@QAEPAGH@Z)
236DEFINE_FRAMEDYN_ALIAS(__ZN8CHString18GetBufferSetLengthEi, ?GetBufferSetLength@CHString@@QAEPAGH@Z)
237DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString7GetDataEv, ?GetData@CHString@@IBEPAUCHStringData@@XZ)
238DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString9GetLengthEv, ?GetLength@CHString@@QBEHXZ)
239DEFINE_FRAMEDYN_ALIAS(__ZN8CHString4InitEv, ?Init@CHString@@IAEXXZ)
240DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString7IsEmptyEv, ?IsEmpty@CHString@@QBEHXZ)
241DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString4LeftEi, ?Left@CHString@@QBE?AV1@H@Z)
242DEFINE_FRAMEDYN_ALIAS(__ZN8CHString11LoadStringWEj, ?LoadStringW@CHString@@QAEHI@Z)
243DEFINE_FRAMEDYN_ALIAS(__ZN8CHString11LoadStringWEjPtj, ?LoadStringW@CHString@@IAEHIPAGI@Z)
244DEFINE_FRAMEDYN_ALIAS(__ZN8CHString10LockBufferEv, ?LockBuffer@CHString@@QAEPAGXZ)
245DEFINE_FRAMEDYN_ALIAS(__ZN8CHString9MakeLowerEv, ?MakeLower@CHString@@QAEXXZ)
246DEFINE_FRAMEDYN_ALIAS(__ZN8CHString11MakeReverseEv, ?MakeReverse@CHString@@QAEXXZ)
247DEFINE_FRAMEDYN_ALIAS(__ZN8CHString9MakeUpperEv, ?MakeUpper@CHString@@QAEXXZ)
248DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString3MidEi, ?Mid@CHString@@QBE?AV1@H@Z)
249DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString3MidEii, ?Mid@CHString@@QBE?AV1@HH@Z)
250DEFINE_FRAMEDYN_ALIAS(__ZN8CHString7ReleaseEP12CHStringData@4, ?Release@CHString@@KGXPAUCHStringData@@@Z)
251DEFINE_FRAMEDYN_ALIAS(__ZN8CHString7ReleaseEv, ?Release@CHString@@IAEXXZ)
252DEFINE_FRAMEDYN_ALIAS(__ZN8CHString13ReleaseBufferEi, ?ReleaseBuffer@CHString@@QAEXH@Z)
253DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString11ReverseFindEt, ?ReverseFind@CHString@@QBEHG@Z)
254DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString5RightEi, ?Right@CHString@@QBE?AV1@H@Z)
255DEFINE_FRAMEDYN_ALIAS(__ZN8CHString10SafeStrlenEPKt@4, ?SafeStrlen@CHString@@KGHPBG@Z)
256DEFINE_FRAMEDYN_ALIAS(__ZN8CHString5SetAtEit, ?SetAt@CHString@@QAEXHG@Z)
257DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString13SpanExcludingEPKt, ?SpanExcluding@CHString@@QBE?AV1@PBG@Z)
258DEFINE_FRAMEDYN_ALIAS(__ZNK8CHString13SpanIncludingEPKt, ?SpanIncluding@CHString@@QBE?AV1@PBG@Z)
259DEFINE_FRAMEDYN_ALIAS(__ZN8CHString8TrimLeftEv, ?TrimLeft@CHString@@QAEXXZ)
260DEFINE_FRAMEDYN_ALIAS(__ZN8CHString9TrimRightEv, ?TrimRight@CHString@@QAEXXZ)
261DEFINE_FRAMEDYN_ALIAS(__ZN8CHString12UnlockBufferEv, ?UnlockBuffer@CHString@@QAEXXZ)
262DEFINE_FRAMEDYN_ALIAS(__ZNK8CHStringcvPKwEv, ??BCHString@@QBEPBGXZ)
263DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringpLERKS_, ??YCHString@@QAEABV0@ABV0@@Z)
264DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringpLEc, ??YCHString@@QAEABV0@D@Z)
265DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringpLEPKw, ??YCHString@@QAEABV0@PBG@Z)
266DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringpLEw, ??YCHString@@QAEABV0@G@Z)
267DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringaSEPS_, ??4CHString@@QAEABV0@PAV0@@Z)
268DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringaSERKS_, ??4CHString@@QAEABV0@ABV0@@Z)
269DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringaSEPKc, ??4CHString@@QAEABV0@PBD@Z)
270DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringaSEc, ??4CHString@@QAEABV0@D@Z)
271DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringaSEPKh, ??4CHString@@QAEABV0@PBE@Z)
272DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringaSEPKw, ??4CHString@@QAEABV0@PBG@Z)
273DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringaSEw, ??4CHString@@QAEABV0@G@Z)
274DEFINE_FRAMEDYN_ALIAS(__ZNK8CHStringixEi, ??ACHString@@QBEGH@Z)
275DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringD1Ev, ??1CHString@@QAE@XZ) // CHString::~CHString() complete object destructor
276DEFINE_FRAMEDYN_ALIAS(__ZN8CHStringD2Ev, ??1CHString@@QAE@XZ) // CHString::~CHString() base object destructor
277DEFINE_FRAMEDYN_ALIAS(__ZplwRK8CHString, ??H@YG?AVCHString@@GABV0@@Z)
278DEFINE_FRAMEDYN_ALIAS(__ZplRK8CHStringw, ??H@YG?AVCHString@@ABV0@G@Z)
279DEFINE_FRAMEDYN_ALIAS(__ZplRK8CHStringPKw, ??H@YG?AVCHString@@ABV0@PBG@Z)
280DEFINE_FRAMEDYN_ALIAS(__ZplPKwRK8CHString, ??H@YG?AVCHString@@PBGABV0@@Z)
281DEFINE_FRAMEDYN_ALIAS(__ZplRK8CHStringS1_, ??H@YG?AVCHString@@ABV0@0@Z)
282DEFINE_FRAMEDYN_ALIAS(__ZN8Provider5FlushEv, ?Flush@Provider@@MAEXXZ)
283DEFINE_FRAMEDYN_ALIAS(__ZN8Provider21ValidateDeletionFlagsEl, ?ValidateDeletionFlags@Provider@@MAEJJ@Z)
284DEFINE_FRAMEDYN_ALIAS(__ZN8Provider19ValidateMethodFlagsEl, ?ValidateMethodFlags@Provider@@MAEJJ@Z)
285DEFINE_FRAMEDYN_ALIAS(__ZN8Provider18ValidateQueryFlagsEl, ?ValidateQueryFlags@Provider@@MAEJJ@Z)
286#elif defined(_M_AMD64)
287DEFINE_FRAMEDYN_ALIAS(_ZN8CHString16AllocBeforeWriteEi, ?AllocBeforeWrite@CHString@@IEAAXH@Z) // protected: void __thiscall CHString::AllocBeforeWrite(int)
288DEFINE_FRAMEDYN_ALIAS(_ZN8CHString11AllocBufferEi, ?AllocBuffer@CHString@@IEAAXH@Z) // protected: void __thiscall CHString::AllocBuffer(int)
289DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString9AllocCopyERS_iii, ?AllocCopy@CHString@@IEBAXAEAV1@HHH@Z) // protected: void __thiscall CHString::AllocCopy(class CHString &,int,int,int)const
290DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString14AllocSysStringEv, ?AllocSysString@CHString@@QEBAPEAGXZ)
291DEFINE_FRAMEDYN_ALIAS(_ZN8CHString10AssignCopyEiPKt, ?AssignCopy@CHString@@IEAAXHPEBG@Z)
292DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringC1ERKS_, ??0CHString@@QEAA@AEBV0@@Z) // CHString::CHString(CHString const&)
293DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringC1EPKc, ??0CHString@@QEAA@PEBD@Z) // CHString::CHString(char const*)
294DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringC1EPKh, ??0CHString@@QEAA@PEBE@Z) // CHString::CHString(unsigned char const*)
295DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringC1EPKt, ??0CHString@@QEAA@PEBG@Z) // CHString::CHString(unsigned short const*)
296DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringC1EPKti, ??0CHString@@QEAA@PEBGH@Z) // CHString::CHString(unsigned short const*, int)
297DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringC1Eti, ??0CHString@@QEAA@GH@Z) // CHString::CHString(unsigned short, int)
298DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringC1Ev, ??0CHString@@QEAA@XZ) // public: __thiscall CHString::CHString(void)
299DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringC2Ev, ??0CHString@@QEAA@XZ) // public: __thiscall CHString::CHString(void)
300DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString7CollateEPKt, ?Collate@CHString@@QEBAHPEBG@Z) // public: int __thiscall CHString::Collate(unsigned short const *)const
301DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString7CompareEPKt, ?Compare@CHString@@QEBAHPEBG@Z) // public: int __thiscall CHString::Compare(unsigned short const *)const
302DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString13CompareNoCaseEPKt, ?CompareNoCase@CHString@@QEBAHPEBG@Z) // public: int __thiscall CHString::CompareNoCase(unsigned short const *)const
303DEFINE_FRAMEDYN_ALIAS(_ZN8CHString10ConcatCopyEiPKtiS1_, ?ConcatCopy@CHString@@IEAAXHPEBGH0@Z) // protected: void __thiscall CHString::ConcatCopy(int,unsigned short const *,int,unsigned short const *)
304DEFINE_FRAMEDYN_ALIAS(_ZN8CHString13ConcatInPlaceEiPKt, ?ConcatInPlace@CHString@@IEAAXHPEBG@Z) // protected: void __thiscall CHString::ConcatInPlace(int,unsigned short const *)
305DEFINE_FRAMEDYN_ALIAS(_ZN8CHString15CopyBeforeWriteEv, ?CopyBeforeWrite@CHString@@IEAAXXZ) // protected: void __thiscall CHString::CopyBeforeWrite(void)
306DEFINE_FRAMEDYN_ALIAS(_ZN8CHString5EmptyEv, ?Empty@CHString@@QEAAXXZ) // public: void __thiscall CHString::Empty(void)
307DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString4FindEPKt, ?Find@CHString@@QEBAHPEBG@Z) // public: int __thiscall CHString::Find(unsigned short const *)const
308DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString4FindEt, ?Find@CHString@@QEBAHG@Z) // public: int __thiscall CHString::Find(unsigned short)const
309DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString9FindOneOfEPKt, ?FindOneOf@CHString@@QEBAHPEBG@Z) // public: int __thiscall CHString::FindOneOf(unsigned short const *)const
310DEFINE_FRAMEDYN_ALIAS(_ZN8CHString6FormatEjz, ?Format@CHString@@QEAAXIZZ) // public: void __cdecl CHString::Format(unsigned int,...)
311DEFINE_FRAMEDYN_ALIAS(_ZN8CHString6FormatEPKtz, ?Format@CHString@@QEAAXPEBGZZ) // public: void __cdecl CHString::Format(unsigned short const *,...)
312DEFINE_FRAMEDYN_ALIAS(_ZN8CHString14FormatMessageWEjz, ?FormatMessageW@CHString@@QEAAXIZZ) // public: void __cdecl CHString::FormatMessageW(unsigned int,...)
313DEFINE_FRAMEDYN_ALIAS(_ZN8CHString14FormatMessageWEPKtz, ?FormatMessageW@CHString@@QEAAXPEBGZZ) // public: void __cdecl CHString::FormatMessageW(unsigned short const *,...)
314DEFINE_FRAMEDYN_ALIAS(_ZN8CHString7FormatVEPKtPc, ?FormatV@CHString@@QEAAXPEBGPEAD@Z) // public: void __thiscall CHString::FormatV(unsigned short const *,char *)
315DEFINE_FRAMEDYN_ALIAS(_ZN8CHString9FreeExtraEv, ?FreeExtra@CHString@@QEAAXXZ) // public: void __thiscall CHString::FreeExtra(void)
316DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString14GetAllocLengthEv, ?GetAllocLength@CHString@@QEBAHXZ) // public: int __thiscall CHString::GetAllocLength(void)const
317DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString5GetAtEi, ?GetAt@CHString@@QEBAGH@Z) // public: unsigned short __thiscall CHString::GetAt(int)const
318DEFINE_FRAMEDYN_ALIAS(_ZN8CHString9GetBufferEi, ?GetBuffer@CHString@@QEAAPEAGH@Z) // public: unsigned short * __thiscall CHString::GetBuffer(int)
319DEFINE_FRAMEDYN_ALIAS(_ZN8CHString18GetBufferSetLengthEi, ?GetBufferSetLength@CHString@@QEAAPEAGH@Z) // public: unsigned short * __thiscall CHString::GetBufferSetLength(int)
320DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString7GetDataEv, ?GetData@CHString@@IEBAPEAUCHStringData@@XZ) // protected: struct CHStringData * __thiscall CHString::GetData(void)const
321DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString9GetLengthEv, ?GetLength@CHString@@QEBAHXZ) // public: int __thiscall CHString::GetLength(void)const
322DEFINE_FRAMEDYN_ALIAS(_ZN8CHString4InitEv, ?Init@CHString@@IEAAXXZ) // protected: void __thiscall CHString::Init(void)
323DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString7IsEmptyEv, ?IsEmpty@CHString@@QEBAHXZ) // public: int __thiscall CHString::IsEmpty(void)const
324DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString4LeftEi, ?Left@CHString@@QEBA?AV1@H@Z) // public: class CHString __thiscall CHString::Left(int)const
325DEFINE_FRAMEDYN_ALIAS(_ZN8CHString11LoadStringWEj, ?LoadStringW@CHString@@QEAAHI@Z) // public: int __thiscall CHString::LoadStringW(unsigned int)
326DEFINE_FRAMEDYN_ALIAS(_ZN8CHString11LoadStringWEjPtj, ?LoadStringW@CHString@@IEAAHIPEAGI@Z) // protected: int __thiscall CHString::LoadStringW(unsigned int,unsigned short *,unsigned int)
327DEFINE_FRAMEDYN_ALIAS(_ZN8CHString10LockBufferEv, ?LockBuffer@CHString@@QEAAPEAGXZ) // public: unsigned short * __thiscall CHString::LockBuffer(void)
328DEFINE_FRAMEDYN_ALIAS(_ZN8CHString9MakeLowerEv, ?MakeLower@CHString@@QEAAXXZ) // public: void __thiscall CHString::MakeLower(void)
329DEFINE_FRAMEDYN_ALIAS(_ZN8CHString11MakeReverseEv, ?MakeReverse@CHString@@QEAAXXZ) // public: void __thiscall CHString::MakeReverse(void)
330DEFINE_FRAMEDYN_ALIAS(_ZN8CHString9MakeUpperEv, ?MakeUpper@CHString@@QEAAXXZ) // public: void __thiscall CHString::MakeUpper(void)
331DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString3MidEi, ?Mid@CHString@@QEBA?AV1@H@Z) // public: class CHString __thiscall CHString::Mid(int)const
332DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString3MidEii, ?Mid@CHString@@QEBA?AV1@HH@Z) // public: class CHString __thiscall CHString::Mid(int,int)const
333DEFINE_FRAMEDYN_ALIAS(_ZN8CHString7ReleaseEP12CHStringData, ?Release@CHString@@KAXPEAUCHStringData@@@Z) // protected: static void __stdcall CHString::Release(struct CHStringData *)
334DEFINE_FRAMEDYN_ALIAS(_ZN8CHString7ReleaseEv, ?Release@CHString@@IEAAXXZ) // protected: void __thiscall CHString::Release(void)
335DEFINE_FRAMEDYN_ALIAS(_ZN8CHString13ReleaseBufferEi, ?ReleaseBuffer@CHString@@QEAAXH@Z) // public: void __thiscall CHString::ReleaseBuffer(int)
336DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString11ReverseFindEt, ?ReverseFind@CHString@@QEBAHG@Z) // public: int __thiscall CHString::ReverseFind(unsigned short)const
337DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString5RightEi, ?Right@CHString@@QEBA?AV1@H@Z) // public: class CHString __thiscall CHString::Right(int)const
338DEFINE_FRAMEDYN_ALIAS(_ZN8CHString10SafeStrlenEPKt, ?SafeStrlen@CHString@@KAHPEBG@Z) // protected: static int__stdcall CHString::SafeStrlen(unsigned short const *)
339DEFINE_FRAMEDYN_ALIAS(_ZN8CHString5SetAtEit, ?SetAt@CHString@@QEAAXHG@Z) // public: void __thiscall CHString::SetAt(int,unsigned short)
340DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString13SpanExcludingEPKt, ?SpanExcluding@CHString@@QEBA?AV1@PEBG@Z) // public: class CHString __thiscall CHString::SpanExcluding(unsigned short const *)const
341DEFINE_FRAMEDYN_ALIAS(_ZNK8CHString13SpanIncludingEPKt, ?SpanIncluding@CHString@@QEBA?AV1@PEBG@Z) // public: class CHString __thiscall CHString::SpanIncluding(unsigned short const *)const
342DEFINE_FRAMEDYN_ALIAS(_ZN8CHString8TrimLeftEv, ?TrimLeft@CHString@@QEAAXXZ) // public: void __thiscall CHString::TrimLeft(void)
343DEFINE_FRAMEDYN_ALIAS(_ZN8CHString9TrimRightEv, ?TrimRight@CHString@@QEAAXXZ) // public: void __thiscall CHString::TrimRight(void)
344DEFINE_FRAMEDYN_ALIAS(_ZN8CHString12UnlockBufferEv, ?UnlockBuffer@CHString@@QEAAXXZ) // public: void __thiscall CHString::UnlockBuffer(void)
345DEFINE_FRAMEDYN_ALIAS(_ZNK8CHStringcvPKtEv, ??BCHString@@QEBAPEBGXZ) // public: __thiscall CHString::operator unsigned short const *(void)const
346DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringpLERKS_, ??YCHString@@QEAAAEBV0@AEBV0@@Z) // public: class CHString const & __thiscall CHString::operator+=(class CHString const &)
347DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringpLEc, ??YCHString@@QEAAAEBV0@D@Z) // public: class CHString const & __thiscall CHString::operator+=(char)
348DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringpLEPKt, ??YCHString@@QEAAAEBV0@PEBG@Z) // public: class CHString const & __thiscall CHString::operator+=(unsigned short const *)
349DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringpLEt, ??YCHString@@QEAAAEBV0@G@Z) // public: class CHString const & __thiscall CHString::operator+=(unsigned short)
350DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringaSEPS_, ??4CHString@@QEAAAEBV0@PEAV0@@Z) // public: class CHString const & __thiscall CHString::operator=(class CHString *)
351DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringaSERKS_, ??4CHString@@QEAAAEBV0@AEBV0@@Z) // public: class CHString const & __thiscall CHString::operator=(class CHString const &)
352DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringaSEPKc, ??4CHString@@QEAAAEBV0@PEBD@Z) // public: class CHString const & __thiscall CHString::operator=(char const *)
353DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringaSEc, ??4CHString@@QEAAAEBV0@D@Z) // public: class CHString const & __thiscall CHString::operator=(char)
354DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringaSEPKh, ??4CHString@@QEAAAEBV0@PEBE@Z) // public: class CHString const & __thiscall CHString::operator=(unsigned char const *)
355DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringaSEPKt, ??4CHString@@QEAAAEBV0@PEBG@Z) // public: class CHString const & __thiscall CHString::operator=(unsigned short const *)
356DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringaSEt, ??4CHString@@QEAAAEBV0@G@Z) // public: class CHString const & __thiscall CHString::operator=(unsigned short)
357DEFINE_FRAMEDYN_ALIAS(_ZNK8CHStringixEi, ??ACHString@@QEBAGH@Z) // public: unsigned short __thiscall CHString::operator[](int)const
358DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringD1Ev, ??1CHString@@QEAA@XZ) // public: __thiscall CHString::~CHString(void), complete object destructor
359DEFINE_FRAMEDYN_ALIAS(_ZN8CHStringD2Ev, ??1CHString@@QEAA@XZ) // public: __thiscall CHString::~CHString(void), base object destructor
360DEFINE_FRAMEDYN_ALIAS(_ZpltRK8CHString, ??H@YA?AVCHString@@GAEBV0@@Z) // class CHString __stdcall operator+(unsigned short,class CHString const &)
361DEFINE_FRAMEDYN_ALIAS(_ZplRK8CHStringt, ??H@YA?AVCHString@@AEBV0@G@Z) // class CHString __stdcall operator+(class CHString const &,unsigned short)
362DEFINE_FRAMEDYN_ALIAS(_ZplRK8CHStringPKt, ??H@YA?AVCHString@@AEBV0@PEBG@Z) // class CHString __stdcall operator+(class CHString const &,unsigned short const *)
363DEFINE_FRAMEDYN_ALIAS(_ZplPKtRK8CHString, ??H@YA?AVCHString@@PEBGAEBV0@@Z) // class CHString __stdcall operator+(unsigned short const *,class CHString const &)
364DEFINE_FRAMEDYN_ALIAS(_ZplRK8CHStringS1_, ??H@YA?AVCHString@@AEBV0@0@Z) // class CHString __stdcall operator+(class CHString const &,class CHString const &)
365DEFINE_FRAMEDYN_ALIAS(_ZN8Provider5FlushEv, ?Flush@Provider@@MEAAXXZ) // protected: virtual void __thiscall Provider::Flush(void)
366DEFINE_FRAMEDYN_ALIAS(_ZN8Provider21ValidateDeletionFlagsEl, ?ValidateDeletionFlags@Provider@@MEAAJJ@Z) // protected: virtual long __thiscall Provider::ValidateDeletionFlags(long)
367DEFINE_FRAMEDYN_ALIAS(_ZN8Provider19ValidateMethodFlagsEl, ?ValidateMethodFlags@Provider@@MEAAJJ@Z) // protected: virtual long __thiscall Provider::ValidateMethodFlags(long)
368DEFINE_FRAMEDYN_ALIAS(_ZN8Provider18ValidateQueryFlagsEl, ?ValidateQueryFlags@Provider@@MEAAJJ@Z) // protected: virtual long __thiscall Provider::ValidateQueryFlags(long)
369#else
370#error Unsupported arch
371#endif
372
373#undef DEFINE_FRAMEDYN_ALIAS
374
375#endif // __GNUC__
376
377#endif
char * va_list
Definition: acmsvcex.h:78
#define G(r, i, a, b, c, d)
Definition: blake2b-ref.c:117
#define D(d)
Definition: builtin.c:4557
_In_ BOOLEAN Release
Definition: cdrom.h:920
BOOL operator!=(const CHString &s1, CHSTRING_LPCWSTR s2)
Definition: chstring.h:183
BOOL operator<=(const CHString &s1, CHSTRING_LPCWSTR s2)
Definition: chstring.h:192
BOOL operator>=(const CHString &s1, CHSTRING_LPCWSTR s2)
Definition: chstring.h:195
BOOL operator==(const CHString &s1, CHSTRING_LPCWSTR s2)
Definition: chstring.h:180
const CHSTRING_WCHAR * CHSTRING_LPCWSTR
Definition: chstring.h:14
BOOL operator<(const CHString &s1, CHSTRING_LPCWSTR s2)
Definition: chstring.h:186
BOOL operator>(const CHString &s1, CHSTRING_LPCWSTR s2)
Definition: chstring.h:189
CHSTRING_WCHAR * CHSTRING_LPWSTR
Definition: chstring.h:15
unsigned short CHSTRING_WCHAR
Definition: chstring.h:13
CHStringData * GetData() const
Definition: chstring.cpp:766
void ConcatInPlace(int nSrcLen, CHSTRING_LPCWSTR lpszSrcData)
Definition: chstring.cpp:439
CHString SpanExcluding(const wchar_t *lpszCharSet) const
Definition: chstring.h:110
CHString Left(int nCount) const
Definition: chstring.cpp:805
int FindOneOf(const wchar_t *lpszCharSet) const
Definition: chstring.h:67
CHString SpanIncluding(const wchar_t *lpszCharSet) const
Definition: chstring.h:115
int Collate(const wchar_t *lpsz) const
Definition: chstring.h:45
void TrimLeft()
Definition: chstring.cpp:1093
void SetAt(int nIndex, CHSTRING_WCHAR ch)
Definition: chstring.cpp:1059
const CHString & operator+=(char ch)
Definition: chstring.cpp:1299
int GetLength() const
Definition: chstring.cpp:781
void CopyBeforeWrite()
Definition: chstring.cpp:522
int Compare(CHSTRING_LPCWSTR lpsz) const
Definition: chstring.cpp:419
void Init()
Definition: chstring.cpp:789
void UnlockBuffer()
Definition: chstring.cpp:1174
static int WINAPI SafeStrlen(const wchar_t *lpsz)
Definition: chstring.h:174
void AssignCopy(int nSrcLen, CHSTRING_LPCWSTR lpszSrcData)
Definition: chstring.cpp:382
const CHString & operator=(char ch)
Definition: chstring.cpp:1187
void ConcatInPlace(int nSrcLen, const wchar_t *lpszSrcData)
Definition: chstring.h:163
CHString SpanExcluding(CHSTRING_LPCWSTR lpszCharSet) const
Definition: chstring.cpp:1069
void FormatMessageW(const wchar_t *lpszFormat, Params &&... params)
Definition: chstring.h:81
void MakeUpper()
Definition: chstring.cpp:882
void ReleaseBuffer(int nNewLength=-1)
Definition: chstring.cpp:980
void MakeLower()
Definition: chstring.cpp:858
CHString Right(int nCount) const
Definition: chstring.cpp:1021
void FormatMessageW(UINT nFormatID,...)
Definition: chstring.cpp:653
void MakeReverse()
Definition: chstring.cpp:870
CHSTRING_WCHAR operator[](int nIndex) const
Definition: chstring.cpp:1340
int Collate(CHSTRING_LPCWSTR lpsz) const
Definition: chstring.cpp:409
CHString Mid(int nFirst) const
Definition: chstring.cpp:894
int LoadStringW(UINT nID)
Definition: chstring.cpp:826
friend CHString WINAPI operator+(CHSTRING_WCHAR ch, const CHString &string)
Definition: chstring.cpp:1356
void TrimRight()
Definition: chstring.cpp:1126
void ConcatCopy(int nSrc1Len, CHSTRING_LPCWSTR lpszSrc1Data, int nSrc2Len, CHSTRING_LPCWSTR lpszSrc2Data)
Definition: chstring.cpp:490
CHString SpanIncluding(CHSTRING_LPCWSTR lpszCharSet) const
Definition: chstring.cpp:1081
void AllocCopy(CHString &dest, int nCopyLen, int nCopyIndex, int nExtraLen) const
Definition: chstring.cpp:325
int CompareNoCase(CHSTRING_LPCWSTR lpsz) const
Definition: chstring.cpp:429
CHSTRING_LPWSTR LockBuffer()
Definition: chstring.cpp:844
int Find(CHSTRING_WCHAR ch) const
Definition: chstring.cpp:574
CHSTRING_LPWSTR GetBufferSetLength(int nNewLength)
Definition: chstring.cpp:752
void Release()
Definition: chstring.cpp:940
void FormatV(const wchar_t *lpszFormat, va_list argList)
Definition: chstring.h:86
CHSTRING_LPWSTR m_pchData
Definition: chstring.h:147
void Format(const wchar_t *lpszFormat, Params &&... params)
Definition: chstring.h:74
void Empty()
Definition: chstring.cpp:549
int Find(const wchar_t *lpszSub) const
Definition: chstring.h:62
CHSTRING_LPWSTR AllocSysString() const
Definition: chstring.cpp:365
int ReverseFind(CHSTRING_WCHAR ch) const
Definition: chstring.cpp:1002
void AllocBuffer(int nLen)
Definition: chstring.cpp:275
void FormatV(CHSTRING_LPCWSTR lpszFormat, va_list argList)
Definition: chstring.cpp:670
int GetAllocLength() const
Definition: chstring.cpp:700
int FindOneOf(CHSTRING_LPCWSTR lpszCharSet) const
Definition: chstring.cpp:612
void FreeExtra()
Definition: chstring.cpp:678
int Compare(const wchar_t *lpsz) const
Definition: chstring.h:50
int CompareNoCase(const wchar_t *lpsz) const
Definition: chstring.h:55
void AllocBeforeWrite(int nLen)
Definition: chstring.cpp:259
CHSTRING_WCHAR GetAt(int nIndex) const
Definition: chstring.cpp:708
void AssignCopy(int nSrcLen, const wchar_t *lpszSrcData)
Definition: chstring.h:153
static int WINAPI SafeStrlen(CHSTRING_LPCWSTR lpsz)
Definition: chstring.cpp:1042
BOOL IsEmpty() const
Definition: chstring.cpp:797
void ConcatCopy(int nSrc1Len, const wchar_t *lpszSrc1Data, int nSrc2Len, const wchar_t *lpszSrc2Data)
Definition: chstring.h:158
#define Z(I)
@ IsEmpty
Definition: atl_ax.c:995
DWORD WINAPI FormatMessageW(DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, LPWSTR lpBuffer, DWORD nSize, __ms_va_list *args)
Definition: format_msg.c:583
unsigned short(__cdecl typeof(TIFFCurrentDirectory))(struct tiff *)
Definition: typeof.h:94
@ Empty
Definition: npfs.h:125
@ Flush
Definition: fatprocs.h:1054
unsigned int BOOL
Definition: ntddk_ex.h:94
static BYTE * GetData(BYTE *pData, ULONG *pLength)
Definition: assembly.c:114
return pComBuf GetLength()
return pMemory GetBuffer()
GLenum const GLfloat * params
Definition: glext.h:5645
GLfloat GLfloat p
Definition: glext.h:8902
HRESULT Compare(IMFAttributes *pTheirs, MF_ATTRIBUTES_MATCH_TYPE MatchType, [out] BOOL *pbResult)
struct S1 s1
struct S2 s2
static CHAR string1[MAX_PATH]
Definition: asmname.c:32
#define H
static CHAR string2[MAX_PATH]
Definition: automation.c:449
static char * dest
Definition: rtl.c:135
unsigned int UINT
Definition: ndis.h:50
#define HH(a, b, c, d, x, s)
Definition: md4.c:174
long nRefs
Definition: chstring.h:21
CHSTRING_WCHAR * data()
Definition: chstring.h:25
int nDataLength
Definition: chstring.h:22
int nAllocLength
Definition: chstring.h:23
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
Definition: twain.h:1830
_In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params
Definition: wdfrequest.h:308
_In_ DWORD nLength
Definition: wincon.h:473
#define WINAPI
Definition: msvc.h:6
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
const char * LPCSTR
Definition: xmlstorage.h:183