Author: pschweitzer
Date: Sun Sep 1 14:30:28 2013
New Revision: 59939
URL:
http://svn.reactos.org/svn/reactos?rev=59939&view=rev
Log:
[PDSK]
Add two headers: chstring.h and provexce.h
They are used for framedyn.dll stuff, for instance
So far, the CHString class is not fully populated. It is only
populated with exported stuff from framedyn.dll
Added:
trunk/reactos/include/psdk/chstring.h (with props)
trunk/reactos/include/psdk/provexce.h (with props)
Added: trunk/reactos/include/psdk/chstring.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/chstring.h?re…
==============================================================================
--- trunk/reactos/include/psdk/chstring.h (added)
+++ trunk/reactos/include/psdk/chstring.h [iso-8859-1] Sun Sep 1 14:30:28 2013
@@ -0,0 +1,112 @@
+#pragma once
+
+#ifndef _CHSTRING_H
+#define _CHSTRING_H
+
+#include <windows.h>
+#include <provexce.h>
+
+struct CHStringData
+{
+ long nRefs;
+ int nDataLength;
+ int nAllocLength;
+
+ WCHAR* data()
+ {
+ return (WCHAR*)(this+1);
+ }
+};
+
+class CHString
+{
+public:
+ CHString();
+ CHString(WCHAR ch, int nRepeat = 1) throw (CHeap_Exception);
+ CHString(LPCWSTR lpsz) throw (CHeap_Exception);
+ CHString(LPCWSTR lpch, int nLength) throw (CHeap_Exception);
+ CHString(LPCSTR lpsz) throw (CHeap_Exception);
+ CHString(const CHString& stringSrc);
+ CHString(const unsigned char* lpsz);
+ ~CHString();
+
+ BSTR AllocSysString() const throw (CHeap_Exception);
+ int Collate(LPCWSTR lpsz) const;
+ int Compare(LPCWSTR lpsz) const;
+ int CompareNoCase(LPCWSTR lpsz) const;
+ void Empty();
+ int Find(WCHAR ch) const;
+ int Find(LPCWSTR lpszSub) const;
+ int FindOneOf(LPCWSTR lpszCharSet) const;
+ void Format(UINT nFormatID, ...) throw (CHeap_Exception);
+ void Format(LPCWSTR lpszFormat, ...) throw (CHeap_Exception);
+ void FormatMessageW(UINT nFormatID, ...) throw (CHeap_Exception);
+ void FormatMessageW(LPCWSTR lpszFormat, ...) throw (CHeap_Exception);
+ void FormatV(LPCWSTR lpszFormat, va_list argList);
+ void FreeExtra() throw (CHeap_Exception);
+ int GetAllocLength() const;
+ WCHAR GetAt(int nIndex) const;
+ LPWSTR GetBuffer(int nMinBufLength) throw (CHeap_Exception);
+ LPWSTR GetBufferSetLength(int nNewLength) throw (CHeap_Exception);
+ int GetLength() const;
+ BOOL IsEmpty() const;
+ CHString Left(int nCount) const throw (CHeap_Exception);
+ LPWSTR LockBuffer();
+ void MakeLower() throw (CHeap_Exception);
+ void MakeReverse() throw (CHeap_Exception);
+ void MakeUpper() throw (CHeap_Exception);
+ CHString Mid(int nFirst) const throw (CHeap_Exception);
+ CHString Mid(int nFirst, int nCount) const throw (CHeap_Exception);
+ void Release();
+ void Release(CHStringData* pData);
+ void ReleaseBuffer(int nNewLength = -1) throw (CHeap_Exception);
+ int ReverseFind(WCHAR ch) const;
+ CHString Right(int nCount) const throw (CHeap_Exception);
+ void SetAt(int nIndex, WCHAR ch) throw (CHeap_Exception);
+ CHString SpanExcluding(LPCWSTR lpszCharSet) const throw (CHeap_Exception);
+ CHString SpanIncluding(LPCWSTR lpszCharSet) const throw (CHeap_Exception);
+ void TrimLeft() throw (CHeap_Exception);
+ void TrimRight() throw (CHeap_Exception);
+ void UnlockBuffer();
+
+ const CHString& operator=(char ch) throw (CHeap_Exception);
+ const CHString& operator=(WCHAR ch) throw (CHeap_Exception);
+ const CHString& operator=(CHString *p) throw (CHeap_Exception);
+ const CHString& operator=(LPCSTR lpsz) throw (CHeap_Exception);
+ const CHString& operator=(LPCWSTR lpsz) throw (CHeap_Exception);
+ const CHString& operator=(const CHString& stringSrc) throw
(CHeap_Exception);
+ const CHString& operator=(const unsigned char* lpsz) throw (CHeap_Exception);
+
+ const CHString& operator+=(char ch) throw (CHeap_Exception);
+ const CHString& operator+=(WCHAR ch) throw (CHeap_Exception);
+ const CHString& operator+=(LPCWSTR lpsz) throw (CHeap_Exception);
+ const CHString& operator+=(const CHString& string) throw (CHeap_Exception);
+
+ WCHAR operator[](int nIndex) const;
+
+ operator LPWSTR();
+
+ friend CHString WINAPI operator+(WCHAR ch, const CHString& string) throw
(CHeap_Exception);
+ friend CHString WINAPI operator+(const CHString& string, WCHAR ch) throw
(CHeap_Exception);
+ friend CHString WINAPI operator+(const CHString& string, LPCWSTR lpsz) throw
(CHeap_Exception);
+ friend CHString WINAPI operator+(LPCWSTR lpsz, const CHString& string) throw
(CHeap_Exception);
+ friend CHString WINAPI operator+(const CHString& string1, const CHString&
string2) throw (CHeap_Exception);
+
+protected:
+ LPWSTR m_pchData;
+
+ void AllocBeforeWrite(int nLen) throw (CHeap_Exception);
+ void AllocBuffer(int nLen) throw (CHeap_Exception);
+ void AllocCopy(CHString& dest, int nCopyLen, int nCopyIndex, int nExtraLen) const
throw (CHeap_Exception);
+ void AssignCopy(int nSrcLen, LPCWSTR lpszSrcData) throw (CHeap_Exception);
+ void ConcatCopy(int nSrc1Len, LPCWSTR lpszSrc1Data, int nSrc2Len, LPCWSTR
lpszSrc2Data) throw (CHeap_Exception);
+ void ConcatInPlace(int nSrcLen, LPCWSTR lpszSrcData);
+ void CopyBeforeWrite() throw (CHeap_Exception);
+ CHStringData* GetData() const;
+ void Init();
+ int LoadStringW(UINT nID) throw (CHeap_Exception);
+ int LoadStringW(UINT nID, LPWSTR lpszBuf, UINT nMaxBuf) throw (CHeap_Exception);
+ static int WINAPI SafeStrlen(LPCWSTR lpsz);
+};
+
+#endif
Propchange: trunk/reactos/include/psdk/chstring.h
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/reactos/include/psdk/provexce.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/provexce.h?re…
==============================================================================
--- trunk/reactos/include/psdk/provexce.h (added)
+++ trunk/reactos/include/psdk/provexce.h [iso-8859-1] Sun Sep 1 14:30:28 2013
@@ -0,0 +1,23 @@
+#pragma once
+
+#ifndef _PROVIDER_EXCEPT_H
+#define _PROVIDER_EXCEPT_H
+
+class CHeap_Exception
+{
+public:
+ enum HEAP_ERROR
+ {
+ E_ALLOCATION_ERROR = 0 ,
+ E_FREE_ERROR
+ };
+
+ CHeap_Exception(HEAP_ERROR e) : m_Error(e) {}
+ ~CHeap_Exception() {}
+
+ HEAP_ERROR GetError() { return m_Error ; }
+private:
+ HEAP_ERROR m_Error;
+};
+
+#endif
Propchange: trunk/reactos/include/psdk/provexce.h
------------------------------------------------------------------------------
svn:eol-style = native