|
// TestString.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include "COMString.h"
//////////////////////////////////////////////////////////////////////////////////////
//
// SPECIAL NOTES ABOUT THIS PROGRAM
//
// 1) The path in which you place the COMString.h and COMString.cpp must be included
// in the INCLUDE and LIB paths under Visual C++.
// 2) This test program will not compile correctly under UNICODE due to the ATLTRACE
// macro. If you wish to test under UNICODE, you can modify the string being used
// in the ATLTRACE macro with the A2W macro. For example,
//
// ANSI Version: ATLTRACE("%s\n", (LPCTSTR) szTest);
// UNICODE Version: ATLTRACE("%s\n", A2W((LPCTSTR) szTest));
//
//////////////////////////////////////////////////////////////////////////////////////
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
MessageBox(NULL,
_T("Output from this test program is in the debug output window of DevStudio"),
_T("Demo"),
MB_OK | MB_ICONINFORMATION);
USES_CONVERSION;
const TCHAR* testStr = _T("Just Testing");
CCOMString szTest1(testStr);
CCOMString szTest2(_T("Just Testing 2"));
CCOMString szTest3(szTest2);
CCOMString szTest4('A', 15);
if (szTest4.IsEmpty())
ATLTRACE("1)Empty\n");
else
ATLTRACE("1)Not Empty\n");
szTest4.Empty();
if (szTest4.IsEmpty())
ATLTRACE("2)Empty\n");
else
ATLTRACE("2)Not Empty\n");
ATLTRACE("3)");
for (int i=0; i < szTest2.GetLength(); i++)
ATLTRACE("%c|", szTest2[i]);
ATLTRACE("\n");
szTest2.SetAt(3, 'Z');
szTest2.SetAt(5, 'Z');
szTest2.SetAt(7, 'Z');
ATLTRACE("4)");
for (int y=0; y < szTest2.GetLength(); y++)
ATLTRACE("%c|", szTest2[y]);
ATLTRACE("\n");
CCOMString szTest5(_T("Just Testing 2"));
szTest5.MakeUpper();
ATLTRACE("5)%s\n", szTest5.GetString());
CCOMString szTest6(_T("Just Testing 2"));
szTest6.MakeLower();
ATLTRACE("6)%s\n", szTest6.GetString());
CCOMString szTest7(_T("Just Testing 2"));
szTest7.MakeReverse();
ATLTRACE("7)%s\n", szTest7.GetString());
CCOMString szTest8(_T("Just Testing 2 "));
szTest8.TrimRight();
ATLTRACE("8)%s", szTest8.GetString());
ATLTRACE("|\n");
CCOMString szTest9(_T(" Just Testing 2"));
szTest9.TrimLeft();
ATLTRACE("9)%s\n", szTest9.GetString());
ATLTRACE("10)%d\n", szTest9.Find('t'));
ATLTRACE("11)%d\n", szTest9.Find('t',6));
CCOMString szTest10 = szTest9;
ATLTRACE("12)%s\n", (LPCTSTR) szTest10);
CCOMString szTest13 = szTest6.Mid(0,8);
ATLTRACE("13)%s\n", szTest13.GetString());
CCOMString szTest14 = szTest6.Mid(3,6);
ATLTRACE("14)%s\n", szTest14.GetString());
CCOMString szTest15 = szTest6.Right(6);
ATLTRACE("15)%s\n", szTest15.GetString());
CCOMString szTest16 = szTest6.Left(3);
ATLTRACE("16)%s\n", szTest16.GetString());
CCOMString szTest17 = szTest6.SpanIncluding(_T("just"));
ATLTRACE("17)%s\n", szTest17.GetString());
CCOMString szTest18 = szTest6.SpanExcluding(_T("st"));
ATLTRACE("18)%s\n", szTest18.GetString());
ATLTRACE("19)%d\n", szTest6.Compare(_T("Just Testing")));
ATLTRACE("20)%d\n", szTest6.Compare(szTest6));
ATLTRACE("21)%d\n", szTest6.CompareNoCase(_T("JUST TESTING 2")));
ATLTRACE("22)%d\n", szTest6.Compare(szTest3));
CCOMString szTest23;
szTest23.Format(_T("%s, %s, %s"), _T("This"), _T("is a"), _T("Test"));
ATLTRACE("23)%s\n", (LPCTSTR) szTest23);
CComBSTR bstrTemp = _T("This is a BSTR");
CCOMString szTest24(bstrTemp);
ATLTRACE("24)%s\n", (LPCTSTR) szTest24);
BSTR bstrTemp2 = szTest6.AllocSysString();
ATLTRACE("25)%s\n", OLE2T(bstrTemp2));
SysFreeString(bstrTemp2);
CCOMString szTest26 = _T("This is a LPCTSTR Assignment");
ATLTRACE("26)%s\n", (LPCTSTR) szTest26);
CComBSTR bstrTemp3 = _T("This is a BSTR Assignment");
CCOMString szTest27 = bstrTemp3;
ATLTRACE("27)%s\n", (LPCTSTR) szTest27);
CCOMString szTest28 = szTest26;
ATLTRACE("28)%s\n", (LPCTSTR) szTest28);
CCOMString szTest29 = szTest26 + szTest27;
ATLTRACE("29)%s\n", (LPCTSTR) szTest29);
CCOMString szTest30;
szTest30 += (LPCTSTR) szTest26;
szTest30 += _T(";");
szTest30 += (LPCTSTR) szTest27;
szTest30 += _T(";");
szTest30 += bstrTemp3;
ATLTRACE("30)%s\n", (LPCTSTR) szTest30);
return 0;
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Eat, Sleep, Code, Bike. That about sums it up!!