fixed code to compile both as ansi and unicode version, build as unicode by default Modified: trunk/reactos/subsys/system/calc/calc.xml Modified: trunk/reactos/subsys/system/calc/dialog.c Modified: trunk/reactos/subsys/system/calc/stats.c Modified: trunk/reactos/subsys/system/calc/winecalc.c Modified: trunk/reactos/subsys/system/calc/winecalc.h _____
Modified: trunk/reactos/subsys/system/calc/calc.xml --- trunk/reactos/subsys/system/calc/calc.xml 2005-08-26 20:35:33 UTC (rev 17563) +++ trunk/reactos/subsys/system/calc/calc.xml 2005-08-26 21:02:47 UTC (rev 17564) @@ -1,7 +1,9 @@
-<module name="calc" type="win32gui" installbase="system32" installname="calc.exe" warnings="true"> +<module name="calc" type="win32gui" installbase="system32" installname="calc.exe"> <include base="calc">.</include> <define name="__USE_W32API" /> <define name="_WIN32_IE">0x0501</define> + <define name="UNICODE" /> + <define name="_UNICODE" /> <library>kernel32</library> <library>user32</library> <library>gdi32</library> _____
Modified: trunk/reactos/subsys/system/calc/dialog.c --- trunk/reactos/subsys/system/calc/dialog.c 2005-08-26 20:35:33 UTC (rev 17563) +++ trunk/reactos/subsys/system/calc/dialog.c 2005-08-26 21:02:47 UTC (rev 17564) @@ -19,6 +19,7 @@
*/
#include <windows.h> +#include <tchar.h> #include "dialog.h" #include "resource.h" #include "winecalc.h" @@ -50,32 +51,32 @@ HFONT hFont; HFONT hFontOrg;
- char c1[CALC_BUF_SIZE]; - char c2[CALC_BUF_SIZE]; - char c3[CALC_BUF_SIZE]; - char c4[CALC_BUF_SIZE]; - char c5[CALC_BUF_SIZE]; + TCHAR c1[CALC_BUF_SIZE]; + TCHAR c2[CALC_BUF_SIZE]; + TCHAR c3[CALC_BUF_SIZE]; + TCHAR c4[CALC_BUF_SIZE]; + TCHAR c5[CALC_BUF_SIZE];
hdc = BeginPaint( hDlg, &ps );
hMemDC = CreateCompatibleDC( hdc );
- LoadString( hInstance, IDS_COPYRIGHT1, c1, sizeof(c1)); - LoadString( hInstance, IDS_COPYRIGHT2, c2, sizeof(c2)); - LoadString( hInstance, IDS_COPYRIGHT3, c3, sizeof(c3)); - LoadString( hInstance, IDS_COPYRIGHT4, c4, sizeof(c4)); - LoadString( hInstance, IDS_COPYRIGHT5, c5, sizeof(c5)); + LoadString( hInstance, IDS_COPYRIGHT1, c1, sizeof(c1) / sizeof(c1[0])); + LoadString( hInstance, IDS_COPYRIGHT2, c2, sizeof(c2) / sizeof(c2[0])); + LoadString( hInstance, IDS_COPYRIGHT3, c3, sizeof(c3) / sizeof(c3[0])); + LoadString( hInstance, IDS_COPYRIGHT4, c4, sizeof(c4) / sizeof(c4[0])); + LoadString( hInstance, IDS_COPYRIGHT5, c5, sizeof(c5) / sizeof(c5[0]));
hFont = GetStockObject(DEFAULT_GUI_FONT); hFontOrg = SelectObject(hdc, hFont);
SetBkMode(hdc, TRANSPARENT);
- TextOut(hdc, 10, 10, c1, strlen(c1)); - TextOut(hdc, 10, 35, c2, strlen(c2)); - TextOut(hdc, 10, 50, c3, strlen(c3)); - TextOut(hdc, 10, 75, c4, strlen(c4)); - TextOut(hdc, 10, 90, c5, strlen(c5)); + TextOut(hdc, 10, 10, c1, _tcslen(c1)); + TextOut(hdc, 10, 35, c2, _tcslen(c2)); + TextOut(hdc, 10, 50, c3, _tcslen(c3)); + TextOut(hdc, 10, 75, c4, _tcslen(c4)); + TextOut(hdc, 10, 90, c5, _tcslen(c5));
SelectObject(hdc, hFontOrg);
_____
Modified: trunk/reactos/subsys/system/calc/stats.c --- trunk/reactos/subsys/system/calc/stats.c 2005-08-26 20:35:33 UTC (rev 17563) +++ trunk/reactos/subsys/system/calc/stats.c 2005-08-26 21:02:47 UTC (rev 17564) @@ -21,6 +21,7 @@
#include <stdio.h> // sprintf
#include <windows.h> +#include <tchar.h>
#include "stats.h" #include "resource.h" @@ -41,8 +42,8 @@
case WM_INITDIALOG: hWndListBox = CreateWindow( - "LISTBOX", // pointer to registered class name - "Listbox", // pointer to window name + TEXT("LISTBOX"), // pointer to registered class name + TEXT("Listbox"), // pointer to window name WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_BORDER | LBS_NOINTEGRALHEIGHT, // window style 6, // horizontal position of window 6, // vertical position of window @@ -100,7 +101,7 @@
case WM_PAINT: { - char s[CALC_BUF_SIZE]; + TCHAR s[CALC_BUF_SIZE]; int lb_count; HFONT hFont; HFONT hFontOrg; @@ -110,10 +111,10 @@ hFontOrg = SelectObject(hdc, hFont);
lb_count = SendMessage(hWndListBox, LB_GETCOUNT, 0, 0); - sprintf(s, "n=%d", lb_count); + _stprintf(s, TEXT("n=%d"), lb_count);
SetBkMode(hdc, TRANSPARENT); - TextOut(hdc, 98, 121, s, strlen(s)); + TextOut(hdc, 98, 121, s, _tcslen(s)); SelectObject(hdc, hFontOrg); EndPaint( hDlg, &ps );
@@ -121,7 +122,7 @@ } case WM_CLOSE: hWndDlgStats = 0; // invalidate stats dialog - SendMessage(GetParent(hDlg), WM_CHAR, '\x13', 1); // disable stats related calculator buttons + SendMessage(GetParent(hDlg), WM_CHAR, TEXT('\x13'), 1); // disable stats related calculator buttons DestroyWindow( hDlg );
return 0; _____
Modified: trunk/reactos/subsys/system/calc/winecalc.c --- trunk/reactos/subsys/system/calc/winecalc.c 2005-08-26 20:35:33 UTC (rev 17563) +++ trunk/reactos/subsys/system/calc/winecalc.c 2005-08-26 21:02:47 UTC (rev 17564) @@ -22,6 +22,7 @@
#include <math.h>
#include <windows.h> +#include <tchar.h> // #include <commctrl.h>
#include "winecalc.h" @@ -71,9 +72,9 @@
// various display error messages
-static char err_invalid [CALC_BUF_SIZE]; -static char err_divide_by_zero [CALC_BUF_SIZE]; -static char err_undefined [CALC_BUF_SIZE]; +static TCHAR err_invalid [CALC_BUF_SIZE]; +static TCHAR err_divide_by_zero [CALC_BUF_SIZE]; +static TCHAR err_undefined [CALC_BUF_SIZE];
// calculator state is kept here
@@ -105,7 +106,7 @@
static HMENU menus[3];
-static char appname[40]; +static TCHAR appname[40];
static int debug;
@@ -123,33 +124,45 @@ WNDCLASS wc; HWND hWnd; HACCEL haccel; - - char s[CALC_BUF_SIZE]; +#ifdef UNICODE + CHAR s_ansi[CALC_BUF_SIZE]; +#endif + TCHAR s[CALC_BUF_SIZE]; int r;
hInstance = hInst;
- r = GetProfileString("SciCalc", - "layout", - "0", + r = GetProfileString(TEXT("SciCalc"), + TEXT("layout"), + TEXT("0"), s, CALC_BUF_SIZE );
+#ifdef UNICODE + wcstombs(s_ansi, s, sizeof(s_ansi)); + calc.sciMode = atoi(s_ansi); +#else calc.sciMode = atoi(s); +#endif
if (calc.sciMode != 0 && calc.sciMode != 1) calc.sciMode = 1; // Standard Mode
- r = GetProfileString("SciCalc", - "UseSep", - "0", + r = GetProfileString(TEXT("SciCalc"), + TEXT("UseSep"), + TEXT("0"), s, CALC_BUF_SIZE );
- calc.digitGrouping = atoi(s); +#ifdef UNICODE + wcstombs(s_ansi, s, sizeof(s_ansi)); + calc.digitGrouping = atoi(s_ansi); +#else + calc.digitGrouping = atoi(s); +#endif
if (calc.digitGrouping != 0 && calc.digitGrouping != 1) @@ -157,13 +170,13 @@
calc.new = 1; // initialize struct values
- if (!LoadString( hInst, IDS_APPNAME, appname, sizeof(appname))) + if (!LoadString( hInst, IDS_APPNAME, appname, sizeof(appname) / sizeof(appname[0]))) exit(1); - if (!LoadString( hInst, IDS_ERR_INVALID_INPUT, err_invalid, sizeof(err_invalid))) + if (!LoadString( hInst, IDS_ERR_INVALID_INPUT, err_invalid, sizeof(err_invalid) / sizeof(err_invalid[0]))) exit(1); - if (!LoadString( hInst, IDS_ERR_DIVIDE_BY_ZERO, err_divide_by_zero, sizeof(err_divide_by_zero))) + if (!LoadString( hInst, IDS_ERR_DIVIDE_BY_ZERO, err_divide_by_zero, sizeof(err_divide_by_zero) / sizeof(err_divide_by_zero[0]))) exit(1); - if (!LoadString( hInst, IDS_ERR_UNDEFINED, err_undefined, sizeof(err_undefined))) + if (!LoadString( hInst, IDS_ERR_UNDEFINED, err_undefined, sizeof(err_undefined) / sizeof(err_undefined[0]))) exit(1);
wc.style = CS_HREDRAW | CS_VREDRAW; @@ -197,7 +210,7 @@ ShowWindow( hWnd, cmdshow ); UpdateWindow( hWnd );
- if (!(haccel = LoadAccelerators(hInst, "MAIN_MENU"))) + if (!(haccel = LoadAccelerators(hInst, TEXT("MAIN_MENU")))) exit(1);
while( GetMessage(&msg, NULL, 0, 0) ) { @@ -259,13 +272,13 @@ case WM_DESTROY: { int r; - char s[CALC_BUF_SIZE]; + TCHAR s[CALC_BUF_SIZE];
- sprintf(s, "%d", calc.sciMode); - r = WriteProfileString("SciCalc", "layout", s); + _stprintf(s, TEXT("%d"), calc.sciMode); + r = WriteProfileString(TEXT("SciCalc"), TEXT("layout"), s);
- sprintf(s, "%d", calc.digitGrouping); - r = WriteProfileString("SciCalc", "UseSep", s); + _stprintf(s, TEXT("%d"), calc.digitGrouping); + r = WriteProfileString(TEXT("SciCalc"), TEXT("UseSep"), s); }
DestroyCalc( &calc ); @@ -277,7 +290,7 @@
case VK_F1: calc.next = 1; - MessageBox(hWnd, "No Help Available", "Windows Help", MB_OK); + MessageBox(hWnd, TEXT("No Help Available"), TEXT("Windows Help"), MB_OK); return 0;
case VK_F2: // DWORD @@ -365,7 +378,7 @@ case VK_DELETE:
calc.next = 1; - calc.buffer[0] = '\0'; + calc.buffer[0] = TEXT('\0'); calc_buffer_display(&calc); return 0;
@@ -377,11 +390,11 @@
case WM_CHAR: if (debug) - show_debug(&calc, "Start WM_CHAR", wParam, lParam); + show_debug(&calc, TEXT("Start WM_CHAR"), wParam, lParam);
switch (wParam) {
- case '\x13': // Ctrl+S Sta Statistics + case TEXT('\x13'): // Ctrl+S Sta Statistics
if (hWndDlgStats) { // Statistics Box already displayed, focus but don't create another one // SetFocus(hWndDlgStats); @@ -400,7 +413,7 @@
hWndDlgStats = CreateDialog( // modeless dialog calc.hInst, // handle to application instance - "DLG_STATS", // identifies dialog box template name + TEXT("DLG_STATS"), // identifies dialog box template name hWnd, // handle to owner window StatsDlgProc); // pointer to dialog box procedure
@@ -413,14 +426,14 @@
break;
- case '\x01': // Ctrl+A Ave Statistics - case '\x04': // Ctrl+D s Standard Deviation Statistics - case '\x14': // Ctrl+T Sum Statistics + case TEXT('\x01'): // Ctrl+A Ave Statistics + case TEXT('\x04'): // Ctrl+D s Standard Deviation Statistics + case TEXT('\x14'): // Ctrl+T Sum Statistics { int i; int n;
- char s[CALC_BUF_SIZE]; + TCHAR s[CALC_BUF_SIZE]; double val = 0L; double avg = 0L; double total = 0L; @@ -438,10 +451,10 @@ x[i] = val; }
- if (LOWORD(wParam) != '\x14') // not sum only + if (LOWORD(wParam) != TEXT('\x14')) // not sum only avg = total / n;
- if (LOWORD(wParam == '\x04')) { // standard deviation is sqrt(sum( xbar - x )^2 / (n-1)) + if (LOWORD(wParam == TEXT('\x04'))) { // standard deviation is sqrt(sum( xbar - x )^2 / (n-1)) val = 0L;
for (i=0;i<n;i++) @@ -453,28 +466,28 @@ total = sqrt(val / (n - 1)); // sample of population }
- if (LOWORD(wParam) == '\x01') // average or mean + if (LOWORD(wParam) == TEXT('\x01')) // average or mean total = avg;
calc_ftoa(&calc, total, s); - strcpy(calc.buffer, s); + _tcscpy(calc.buffer, s); calc_buffer_display(&calc); }
break;
- case '\x03': // Ctrl+C Copy + case TEXT('\x03'): // Ctrl+C Copy { int i; int len; - char *s; + TCHAR *s; HGLOBAL hGlobalMemory; PSTR pGlobalMemory;
- if (!(len = strlen(calc.display))) + if (!(len = _tcslen(calc.display))) return 0;
- if (!(hGlobalMemory = GlobalAlloc(GHND, len + 1))) + if (!(hGlobalMemory = GlobalAlloc(GHND, (len + 1) * sizeof(TCHAR)))) return 0;
if (!(pGlobalMemory = GlobalLock(hGlobalMemory))) @@ -502,15 +515,15 @@ } break;
- case '\x16': // Ctrl+V Paste + case TEXT('\x16'): // Ctrl+V Paste { - char *s; + TCHAR *s; int c; int cmd = 0; int size = 0; int i = 0; HGLOBAL hGlobalMemory; - PSTR pGlobalMemory; + LPTSTR pGlobalMemory;
if (IsClipboardFormatAvailable(CF_TEXT)) { if (!OpenClipboard(hWnd)) @@ -522,13 +535,13 @@ if (!(size = GlobalSize(hGlobalMemory))) return 0;
- if (!(s = (char *)malloc(size))) + if (!(s = (TCHAR *)malloc(size))) return 0;
if (!(pGlobalMemory = GlobalLock(hGlobalMemory))) return 0;
- strcpy(s, pGlobalMemory); + _tcscpy(s, pGlobalMemory);
GlobalUnlock(hGlobalMemory);
@@ -548,11 +561,11 @@ // parse the pasted data, validate and SendMessage it one character at a time. // it would appear wincalc does it this way (slow), although very slow appearing on Wine.
- while ((c = *s++) && (i++ < size)) { - if (c == ':') { + while ((c = *s++) && (i++ < size / sizeof(TCHAR))) { + if (c == TEXT(':')) { cmd = 1; } - else if (c == '\') { + else if (c == TEXT('\')) { SendMessage(hWnd, WM_KEYDOWN, VK_INSERT, lParam); } else { @@ -560,34 +573,34 @@ cmd = 0;
switch(c) { - case 'c': // clear memory + case TEXT('c'): // clear memory
- case 'C': + case TEXT('C'): SendMessage(hWnd, WM_CHAR, 0x0c, lParam); break; - case 'e': // enable scientific notation + case TEXT('e'): // enable scientific notation
- case 'E': + case TEXT('E'): SendMessage(hWnd, WM_CHAR, 'v', lParam); break; - case 'm': // store display in memory + case TEXT('m'): // store display in memory
- case 'M': + case TEXT('M'): SendMessage(hWnd, WM_CHAR, 0x0d, NUMBER_OF_THE_BEAST); break; - case 'p': // add display to memory + case TEXT('p'): // add display to memory
- case 'P': + case TEXT('P'): SendMessage(hWnd, WM_CHAR, 0x10, lParam); break; - case 'q': // clear current calculation + case TEXT('q'): // clear current calculation
- case 'Q': - SendMessage(hWnd, WM_CHAR, '\x1b', lParam); + case TEXT('Q'): + SendMessage(hWnd, WM_CHAR, TEXT('\x1b'), lParam); break; - case 'r': // read memory into display + case TEXT('r'): // read memory into display
- case 'R': + case TEXT('R'): SendMessage(hWnd, WM_CHAR, 0x12, lParam); break; default: // just eat it but complain @@ -598,32 +611,32 @@ } else { if ((calc.numBase == NBASE_HEX) && - ((c >= '0' && c <= '9') || - (c >= 'a' && c <= 'f') || - (c >= 'A' && c <= 'F'))) { + ((c >= TEXT('0') && c <= TEXT('9')) || + (c >= TEXT('a') && c <= TEXT('f')) || + (c >= TEXT('A') && c <= TEXT('F')))) {
SendMessage(hWnd, WM_CHAR, c, lParam); } else if ((calc.numBase == NBASE_DECIMAL) && - (c >= '0' && c <= '9')) { + (c >= TEXT('0') && c <= TEXT('9'))) { SendMessage(hWnd, WM_CHAR, c, lParam); } else if ((calc.numBase == NBASE_OCTAL) && - (c >= '0' && c <= '7')) { + (c >= TEXT('0') && c <= TEXT('7'))) { SendMessage(hWnd, WM_CHAR, c, lParam); } else if ((calc.numBase == NBASE_BINARY) && - (c == '0' || c == '1')) { + (c == TEXT('0') || c == TEXT('1'))) { SendMessage(hWnd, WM_CHAR, c, lParam); } - else if (c == '.' || c == ',' || - c == 'e' || c == 'E' || - c == '+' || c == '-') { + else if (c == TEXT('.') || c == TEXT(',') || + c == TEXT('e') || c == TEXT('E') || + c == TEXT('+') || c == TEXT('-')) { SendMessage(hWnd, WM_CHAR, c, lParam); } - else if (c == ' ' || // eat harmless trash here - c == ';' || - c == ':') { + else if (c == TEXT(' ') || // eat harmless trash here + c == TEXT(';') || + c == TEXT(':')) { ; // noop } else { // extra spicy trash gets noticed @@ -650,11 +663,11 @@ switch(LOWORD(wParam)) {
case IDM_COPY: - SendMessage(hWnd, WM_CHAR, '\x03', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('\x03'), lParam); return 0;
case IDM_PASTE: - SendMessage(hWnd, WM_CHAR, '\x16', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('\x16'), lParam); return 0;
case IDM_MODE_STANDARD: @@ -739,11 +752,11 @@ return 0;
case IDM_HELP_TOPICS: - MessageBox(hWnd, "No Help Available", "Windows Help", MB_OK); + MessageBox(hWnd, TEXT("No Help Available"), TEXT("Windows Help"), MB_OK); return 0;
case IDM_ABOUT: - DialogBox( calc.hInst, "DLG_ABOUT", hWnd, AboutDlgProc ); + DialogBox( calc.hInst, TEXT("DLG_ABOUT"), hWnd, AboutDlgProc ); return 0;
case ID_CALC_NS_HEX: @@ -944,39 +957,39 @@ case ID_CALC_SEVEN: case ID_CALC_EIGHT: case ID_CALC_NINE: - SendMessage(hWnd, WM_CHAR, LOWORD(wParam)+'0' , lParam); + SendMessage(hWnd, WM_CHAR, LOWORD(wParam)+TEXT('0') , lParam); break;
case ID_CALC_A: - SendMessage(hWnd, WM_CHAR, 'a', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('a'), lParam); break;
case ID_CALC_B: - SendMessage(hWnd, WM_CHAR, 'b', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('b'), lParam); break;
case ID_CALC_C: - SendMessage(hWnd, WM_CHAR, 'c', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('c'), lParam); break;
case ID_CALC_D: - SendMessage(hWnd, WM_CHAR, 'd', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('d'), lParam); break;
case ID_CALC_E: - SendMessage(hWnd, WM_CHAR, 'e', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('e'), lParam); break;
case ID_CALC_F: - SendMessage(hWnd, WM_CHAR, 'f', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('f'), lParam); break;
case ID_CALC_DECIMAL: - SendMessage(hWnd, WM_CHAR, '.', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('.'), lParam); break;
case ID_CALC_BACKSPACE: - SendMessage(hWnd, WM_CHAR, '\b', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('\b'), lParam); break;
case ID_CALC_CLEAR_ENTRY: @@ -984,7 +997,7 @@ break;
case ID_CALC_CLEAR_ALL: - SendMessage(hWnd, WM_CHAR, '\x1b', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('\x1b'), lParam); break;
case ID_CALC_MEM_CLEAR: @@ -1004,75 +1017,75 @@ break;
case ID_CALC_SQRT: - SendMessage(hWnd, WM_CHAR, '?', lParam); // this is not a wincalc keystroke + SendMessage(hWnd, WM_CHAR, TEXT('?'), lParam); // this is not a wincalc keystroke break;
case ID_CALC_SQUARE: - SendMessage(hWnd, WM_CHAR, '@', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('@'), lParam); break;
case ID_CALC_PI: - SendMessage(hWnd, WM_CHAR, 'p', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('p'), lParam); break;
case ID_CALC_LN: - SendMessage(hWnd, WM_CHAR, 'n', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('n'), lParam); break;
case ID_CALC_LOG10: - SendMessage(hWnd, WM_CHAR, 'l', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('l'), lParam); break;
case ID_CALC_CUBE: - SendMessage(hWnd, WM_CHAR, '#', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('#'), lParam); break;
case ID_CALC_POWER: - SendMessage(hWnd, WM_CHAR, 'y', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('y'), lParam); break;
case ID_CALC_SIN: - SendMessage(hWnd, WM_CHAR, 's', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('s'), lParam); break;
case ID_CALC_COS: - SendMessage(hWnd, WM_CHAR, 'o', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('o'), lParam); break;
case ID_CALC_TAN: - SendMessage(hWnd, WM_CHAR, 't', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('t'), lParam); break;
case ID_CALC_LSH: - SendMessage(hWnd, WM_CHAR, '<', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('<'), lParam); break;
case ID_CALC_NOT: - SendMessage(hWnd, WM_CHAR, '~', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('~'), lParam); break;
case ID_CALC_AND: - SendMessage(hWnd, WM_CHAR, '&', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('&'), lParam); break;
case ID_CALC_OR: - SendMessage(hWnd, WM_CHAR, '|', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('|'), lParam); break;
case ID_CALC_XOR: - SendMessage(hWnd, WM_CHAR, '^', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('^'), lParam); break;
case ID_CALC_INT: - SendMessage(hWnd, WM_CHAR, ';', lParam); + SendMessage(hWnd, WM_CHAR, TEXT(';'), lParam); break;
case ID_CALC_FACTORIAL: - SendMessage(hWnd, WM_CHAR, '!', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('!'), lParam); break;
case ID_CALC_RECIPROCAL: - SendMessage(hWnd, WM_CHAR, 'r', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('r'), lParam); break;
case ID_CALC_SIGN: @@ -1080,47 +1093,47 @@ break;
case ID_CALC_PLUS: - SendMessage(hWnd, WM_CHAR, '+', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('+'), lParam); break;
case ID_CALC_MINUS: - SendMessage(hWnd, WM_CHAR, '-', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('-'), lParam); break;
case ID_CALC_MULTIPLY: - SendMessage(hWnd, WM_CHAR, '*', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('*'), lParam); break;
case ID_CALC_DIVIDE: - SendMessage(hWnd, WM_CHAR, '/', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('/'), lParam); break;
case ID_CALC_EQUALS: - SendMessage(hWnd, WM_CHAR, '=', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('='), lParam); break;
case ID_CALC_PERCENT: - SendMessage(hWnd, WM_CHAR, '%', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('%'), lParam); break;
case ID_CALC_EXP: - SendMessage(hWnd, WM_CHAR, 'x', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('x'), lParam); break;
case ID_CALC_FE: - SendMessage(hWnd, WM_CHAR, 'v', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('v'), lParam); break;
case ID_CALC_LEFTPAREN: - SendMessage(hWnd, WM_CHAR, '(', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('('), lParam); break;
case ID_CALC_RIGHTPAREN: - SendMessage(hWnd, WM_CHAR, ')', lParam); + SendMessage(hWnd, WM_CHAR, TEXT(')'), lParam); break;
case ID_CALC_MOD: - SendMessage(hWnd, WM_CHAR, '%', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('%'), lParam); break;
case ID_CALC_DAT: @@ -1128,23 +1141,23 @@ break;
case ID_CALC_AVE: - SendMessage(hWnd, WM_CHAR, '\x01', lParam); // Ctrl+A + SendMessage(hWnd, WM_CHAR, TEXT('\x01'), lParam); // Ctrl+A break;
case ID_CALC_S: - SendMessage(hWnd, WM_CHAR, '\x04', lParam); // Ctrl+D + SendMessage(hWnd, WM_CHAR, TEXT('\x04'), lParam); // Ctrl+D break;
case ID_CALC_STA: - SendMessage(hWnd, WM_CHAR, '\x13', lParam); // Ctrl+S + SendMessage(hWnd, WM_CHAR, TEXT('\x13'), lParam); // Ctrl+S break;
case ID_CALC_SUM: - SendMessage(hWnd, WM_CHAR, '\x14', lParam); // Ctrl+T + SendMessage(hWnd, WM_CHAR, TEXT('\x14'), lParam); // Ctrl+T break;
case ID_CALC_DMS: - SendMessage(hWnd, WM_CHAR, 'm', lParam); + SendMessage(hWnd, WM_CHAR, TEXT('m'), lParam); break;
default: @@ -1156,7 +1169,7 @@ SetFocus(hWnd);
if (debug) - show_debug(&calc, "After WM_CHAR", wParam, lParam); + show_debug(&calc, TEXT("After WM_CHAR"), wParam, lParam);
return 0;
@@ -1172,33 +1185,33 @@
// initialize keys lut for validating keystrokes in various number bases
- for (i='0';i<='9';i++) { + for (i=TEXT('0');i<=TEXT('9');i++) { keys[NBASE_HEX][i] = 1; keys[NBASE_DECIMAL][i] = 1;
- if (i <= '7') + if (i <= TEXT('7')) keys[NBASE_OCTAL][i] = 1;
- if (i <= '1') + if (i <= TEXT('1')) keys[NBASE_BINARY][i] = 1; }
- for (i='a';i<='f';i++) + for (i=TEXT('a');i<=TEXT('f');i++) keys[NBASE_HEX][i] = 1;
- for (i='A';i<='F';i++) + for (i=TEXT('A');i<=TEXT('F');i++) keys[NBASE_HEX][i] = 1; }
void InitMenus(HINSTANCE hInst) { - if (!(menus[MENU_STD] = LoadMenu(hInst,"MAIN_MENU"))) + if (!(menus[MENU_STD] = LoadMenu(hInst,TEXT("MAIN_MENU")))) exit(1);
- if (!(menus[MENU_SCIMS] = LoadMenu(hInst,"SCIMS_MENU"))) + if (!(menus[MENU_SCIMS] = LoadMenu(hInst,TEXT("SCIMS_MENU")))) exit(1);
- if (!(menus[MENU_SCIWS] = LoadMenu(hInst,"SCIWS_MENU"))) + if (!(menus[MENU_SCIWS] = LoadMenu(hInst,TEXT("SCIWS_MENU")))) exit(1);
CheckMenuItem(menus[MENU_STD], IDM_MODE_STANDARD, MF_CHECKED); @@ -1264,11 +1277,11 @@ calc->value = 0; calc->memory = 0; calc->displayMode = 0; - calc->buffer[0] = '\0'; - strcpy(calc->display, "0."); + calc->buffer[0] = TEXT('\0'); + _tcscpy(calc->display, TEXT("0."));
calc->err = 0; - calc->next = '\0'; + calc->next = TEXT('\0');
calc->wordSize = WORDSIZE_QWORD; calc->invMode = 0; @@ -1284,7 +1297,7 @@ skipy = CALC_STANDARD_MARGIN_TOP + CALC_EDIT_HEIGHT;
calc->cb[0].id = 0; - strcpy(calc->cb[0].label,"FILLER"); + _tcscpy(calc->cb[0].label,TEXT("FILLER")); calc->cb[0].color = CALC_COLOR_BLUE; calc->cb[0].r.left = skipx + 4; calc->cb[0].r.top = skipy + 2; @@ -1295,7 +1308,7 @@ skipx = SZ_FILLER_X + MARGIN_STANDARD_BIG_X + 11;
calc->cb[1].id = ID_CALC_BACKSPACE; - LoadString( hInst, IDS_BTN_BACKSPACE, calc->cb[1].label, sizeof(calc->cb[1].label)); + LoadString( hInst, IDS_BTN_BACKSPACE, calc->cb[1].label, sizeof(calc->cb[1].label) / sizeof(calc->cb[1].label[0])); calc->cb[1].color = CALC_COLOR_RED; calc->cb[1].r.left = skipx; calc->cb[1].r.top = skipy; @@ -1306,7 +1319,7 @@ skipx += SZ_BIGBTN_X + MARGIN_SMALL_X;
calc->cb[2].id = ID_CALC_CLEAR_ENTRY; - LoadString( hInst, IDS_BTN_CLEAR_ENTRY, calc->cb[2].label, sizeof(calc->cb[2].label)); + LoadString( hInst, IDS_BTN_CLEAR_ENTRY, calc->cb[2].label, sizeof(calc->cb[2].label) / sizeof(calc->cb[2].label[0])); calc->cb[2].color = CALC_COLOR_RED; calc->cb[2].r.left = skipx; calc->cb[2].r.top = skipy; @@ -1317,7 +1330,7 @@ skipx += SZ_BIGBTN_X + MARGIN_SMALL_X;
calc->cb[3].id = ID_CALC_CLEAR_ALL; - LoadString( hInst, IDS_BTN_CLEAR_ALL, calc->cb[3].label, sizeof(calc->cb[3].label)); + LoadString( hInst, IDS_BTN_CLEAR_ALL, calc->cb[3].label, sizeof(calc->cb[3].label) / sizeof(calc->cb[3].label[0])); calc->cb[3].color = CALC_COLOR_RED; calc->cb[3].r.left = skipx; calc->cb[3].r.top = skipy; @@ -1331,7 +1344,7 @@ skipy += SZ_BIGBTN_Y + MARGIN_BIG_Y;
calc->cb[4].id = ID_CALC_MEM_CLEAR; - LoadString( hInst, IDS_BTN_MEM_CLEAR, calc->cb[4].label, sizeof(calc->cb[4].label)); + LoadString( hInst, IDS_BTN_MEM_CLEAR, calc->cb[4].label, sizeof(calc->cb[4].label) / sizeof(calc->cb[4].label[0])); calc->cb[4].color = CALC_COLOR_RED; calc->cb[4].r.left = skipx; calc->cb[4].r.top = skipy; @@ -1342,7 +1355,7 @@ skipx += SZ_MEDBTN_X + MARGIN_STANDARD_BIG_X;
calc->cb[5].id = ID_CALC_SEVEN; - strcpy(calc->cb[5].label,"7"); + _tcscpy(calc->cb[5].label,TEXT("7")); calc->cb[5].color = CALC_COLOR_BLUE; calc->cb[5].r.left = skipx; calc->cb[5].r.top = skipy; @@ -1353,7 +1366,7 @@ skipx += SZ_MEDBTN_X + MARGIN_SMALL_X;
calc->cb[6].id = ID_CALC_EIGHT; - strcpy(calc->cb[6].label,"8"); + _tcscpy(calc->cb[6].label,TEXT("8")); calc->cb[6].color = CALC_COLOR_BLUE; calc->cb[6].r.left = skipx; calc->cb[6].r.top = skipy; @@ -1364,7 +1377,7 @@ skipx += SZ_MEDBTN_X + MARGIN_SMALL_X;
calc->cb[7].id = ID_CALC_NINE; - strcpy(calc->cb[7].label,"9"); + _tcscpy(calc->cb[7].label,TEXT("9")); calc->cb[7].color = CALC_COLOR_BLUE; calc->cb[7].r.left = skipx; calc->cb[7].r.top = skipy; @@ -1375,7 +1388,7 @@ skipx += SZ_MEDBTN_X + MARGIN_SMALL_X;
calc->cb[8].id = ID_CALC_DIVIDE; - strcpy(calc->cb[8].label,"/"); + _tcscpy(calc->cb[8].label,TEXT("/")); calc->cb[8].color = CALC_COLOR_RED; calc->cb[8].r.left = skipx; calc->cb[8].r.top = skipy; @@ -1386,7 +1399,7 @@ skipx += SZ_MEDBTN_X + MARGIN_SMALL_X;
calc->cb[9].id = ID_CALC_SQRT; - LoadString( hInst, IDS_BTN_SQRT, calc->cb[9].label, sizeof(calc->cb[9].label)); + LoadString( hInst, IDS_BTN_SQRT, calc->cb[9].label, sizeof(calc->cb[9].label) / sizeof(calc->cb[9].label[0])); calc->cb[9].color = CALC_COLOR_BLUE; calc->cb[9].r.left = skipx; calc->cb[9].r.top = skipy; @@ -1400,7 +1413,7 @@ skipy += SZ_MEDBTN_Y + MARGIN_SMALL_Y;
calc->cb[10].id = ID_CALC_MEM_RECALL; - LoadString( hInst, IDS_BTN_MEM_RECALL, calc->cb[10].label, sizeof(calc->cb[10].label)); + LoadString( hInst, IDS_BTN_MEM_RECALL, calc->cb[10].label, sizeof(calc->cb[10].label) / sizeof(calc->cb[10].label[0])); calc->cb[10].color = CALC_COLOR_RED; calc->cb[10].r.left = skipx; calc->cb[10].r.top = skipy; @@ -1411,7 +1424,7 @@ skipx += SZ_MEDBTN_X + MARGIN_STANDARD_BIG_X;
calc->cb[11].id = ID_CALC_FOUR; - strcpy(calc->cb[11].label,"4"); + _tcscpy(calc->cb[11].label,TEXT("4")); calc->cb[11].color = CALC_COLOR_BLUE; calc->cb[11].r.left = skipx; calc->cb[11].r.top = skipy; @@ -1422,7 +1435,7 @@ skipx += SZ_MEDBTN_X + MARGIN_SMALL_X;
calc->cb[12].id = ID_CALC_FIVE; - strcpy(calc->cb[12].label,"5"); + _tcscpy(calc->cb[12].label,TEXT("5")); calc->cb[12].color = CALC_COLOR_BLUE; calc->cb[12].r.left = skipx; calc->cb[12].r.top = skipy; @@ -1433,7 +1446,7 @@ skipx += SZ_MEDBTN_X + MARGIN_SMALL_X;
calc->cb[13].id = ID_CALC_SIX; - strcpy(calc->cb[13].label,"6"); + _tcscpy(calc->cb[13].label,TEXT("6")); calc->cb[13].color = CALC_COLOR_BLUE; calc->cb[13].r.left = skipx; calc->cb[13].r.top = skipy; @@ -1444,7 +1457,7 @@ skipx += SZ_MEDBTN_X + MARGIN_SMALL_X;
calc->cb[14].id = ID_CALC_MULTIPLY; - strcpy(calc->cb[14].label,"*"); + _tcscpy(calc->cb[14].label,TEXT("*")); calc->cb[14].color = CALC_COLOR_RED; calc->cb[14].r.left = skipx; calc->cb[14].r.top = skipy; @@ -1455,7 +1468,7 @@ skipx += SZ_MEDBTN_X + MARGIN_SMALL_X;
calc->cb[15].id = ID_CALC_PERCENT; - strcpy(calc->cb[15].label,"%"); + _tcscpy(calc->cb[15].label,TEXT("%")); calc->cb[15].color = CALC_COLOR_BLUE; calc->cb[15].r.left = skipx; calc->cb[15].r.top = skipy; @@ -1469,7 +1482,7 @@ skipy += SZ_MEDBTN_Y + MARGIN_SMALL_Y;
calc->cb[16].id = ID_CALC_MEM_STORE; - LoadString( hInst, IDS_BTN_MEM_STORE, calc->cb[16].label, sizeof(calc->cb[16].label)); + LoadString( hInst, IDS_BTN_MEM_STORE, calc->cb[16].label, sizeof(calc->cb[16].label) / sizeof(calc->cb[16].label[0])); calc->cb[16].color = CALC_COLOR_RED; [truncated at 1000 lines; 1910 more skipped]