Unicodify string constants.

diff --git a/programs/winefile/winefile.c b/programs/winefile/winefile.c
index 8390101..804d69c 100644
--- a/programs/winefile/winefile.c
+++ b/programs/winefile/winefile.c
@@ -65,11 +65,6 @@
 #endif
 
 
-WINEFILE_GLOBALS Globals;
-
-extern void WineLicense(HWND hwnd);
-extern void WineWarranty(HWND hwnd);
-
 enum ENTRY_TYPE {
 	ET_WINDOWS,
 	ET_UNIX,
@@ -168,6 +163,10 @@
 } ChildWnd;
 
 
+extern void WineLicense(HWND hwnd);
+extern void WineWarranty(HWND hwnd);
+
+
 static void read_directory(Entry* dir, LPCTSTR path, SORT_ORDER sortOrder, HWND hwnd);
 static void set_curdir(ChildWnd* child, Entry* entry, HWND hwnd);
 static void get_path(Entry* dir, PTSTR path);
@@ -177,6 +176,30 @@
 LRESULT CALLBACK TreeWndProc(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM lparam);
 
 
+/* globals */
+WINEFILE_GLOBALS Globals;
+
+/* some common string constants */
+const static TCHAR sEmpty[] = {'\0'};
+const static TCHAR sSpace[] = {' ', '\0'};
+const static TCHAR sNumFmt[] = {'%','d','\0'};
+const static TCHAR sQMarks[] = {'?','?','?','\0'};
+
+/* window class names */
+const static TCHAR sWINEFILEFRAME[] = {'W','F','S','_','F','r','a','m','e','\0'};
+const static TCHAR sWINEFILETREE[] = {'W','F','S','_','T','r','e','e','\0'};
+
+#ifdef _MSC_VER
+/* #define LONGLONGARG _T("I64") */
+const static TCHAR sLongHexFmt[] = {'%','I','6','4','X','\0'};
+const static TCHAR sLongNumFmt[] = {'%','I','6','4','d','\0'};
+#else
+/* #define LONGLONGARG _T("L") */
+const static TCHAR sLongHexFmt[] = {'%','L','X','\0'};
+const static TCHAR sLongNumFmt[] = {'%','L','d','\0'};
+#endif
+
+
 /* load resource string */
 static LPTSTR load_string(LPTSTR buffer, UINT id)
 {
@@ -270,7 +293,9 @@
 	for(p=buffer; *path; )
 		*p++ = *path++;
 
-	lstrcpy(p, TEXT("\\*"));
+	*p++ = '\\';
+	p[0] = '*';
+	p[1] = '\0';
 
 	hFind = FindFirstFile(buffer, &w32fd);
 
@@ -303,7 +328,7 @@
 			entry->etype = ET_WINDOWS;
 			entry->bhfi_valid = FALSE;
 
-			lstrcpy(p+1, entry->data.cFileName);
+			lstrcpy(p, entry->data.cFileName);
 
 			hFile = CreateFile(buffer, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,
 								0, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0);
@@ -1069,12 +1094,12 @@
 	if (ext1)
 		ext1++;
 	else
-		ext1 = TEXT("");
+		ext1 = sEmpty;
 
 	if (ext2)
 		ext2++;
 	else
-		ext2 = TEXT("");
+		ext2 = sEmpty;
 
 	cmp = lstrcmpi(ext1, ext2);
 	if (cmp)
@@ -1237,6 +1262,11 @@
 
 static ChildWnd* alloc_child_window(LPCTSTR path, LPITEMIDLIST pidl, HWND hwnd)
 {
+	const static TCHAR sBackslash[] = {'\\', '\0'};
+#if !defined(_NO_EXTENSIONS) && defined(__WINE__)
+	const static TCHAR sSlash[] = {'/', '\0'};
+#endif
+
 	TCHAR drv[_MAX_DRIVE+1], dir[_MAX_DIR], name[_MAX_FNAME], ext[_MAX_EXT];
 	TCHAR b1[BUFFER_LEN];
 
@@ -1282,10 +1312,11 @@
 	if (pidl)
 	{
 		root->drive_type = DRIVE_UNKNOWN;
-		lstrcpy(drv, TEXT("\\"));
-		lstrcpy(root->volname, TEXT("Desktop"));
+		drv[0] = '\\';
+		drv[1] = '\0';
+		load_string(root->volname, IDS_DESKTOP);
 		root->fs_flags = 0;
-		lstrcpy(root->fs, TEXT("Shell"));
+		load_string(root->fs, IDS_SHELL);
 
 		entry = read_tree_shell(root, pidl, child->sortOrder, hwnd);
 	}
@@ -1296,12 +1327,12 @@
 	{
 		root->drive_type = GetDriveType(path);
 
-		lstrcat(drv, TEXT("/"));
-		lstrcpy(root->volname, TEXT("root fs"));
+		lstrcat(drv, sSlash);
+		load_string(root->volname, IDS_ROOT_FS);
 		root->fs_flags = 0;
-		lstrcpy(root->fs, TEXT("unixfs"));
+		load_string(root->fs, IDS_UNIXFS);
 
-		lstrcpy(root->path, TEXT("/"));
+		lstrcpy(root->path, sSlash);
 		entry = read_tree_unix(root, path, child->sortOrder, hwnd);
 	}
 	else
@@ -1309,7 +1340,7 @@
 	{
 		root->drive_type = GetDriveType(path);
 
-		lstrcat(drv, TEXT("\\"));
+		lstrcat(drv, sBackslash);
 		GetVolumeInformation(drv, root->volname, _MAX_FNAME, 0, 0, &root->fs_flags, root->fs, _MAX_DIR);
 
 		lstrcpy(root->path, drv);
@@ -1497,7 +1528,7 @@
 	MDICREATESTRUCT mcs;
 	int idx;
 
-	mcs.szClass = WINEFILETREE;
+	mcs.szClass = sWINEFILETREE;
 	mcs.szTitle = (LPTSTR)child->path;
 	mcs.hOwner  = Globals.hInstance;
 	mcs.x       = child->pos.rcNormalPosition.left;
@@ -1533,7 +1564,7 @@
 };
 
 
-static BOOL CALLBACK ExecuteDialogWndProg(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM lparam)
+static INT_PTR CALLBACK ExecuteDialogWndProg(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM lparam)
 {
 	static struct ExecuteDialog* dlg;
 
@@ -1559,7 +1590,7 @@
 	return 0;
 }
 
-static BOOL CALLBACK DestinationDlgProc(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM lparam)
+static INT_PTR CALLBACK DestinationDlgProc(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM lparam)
 {
 	TCHAR b1[BUFFER_LEN], b2[BUFFER_LEN];
 
@@ -1872,7 +1903,7 @@
 
 						Globals.hfont = CreateFontIndirect(&lFont);
 						SelectFont(hdc, Globals.hfont);
-						GetTextExtentPoint32(hdc, TEXT(" "), 1, &Globals.spaceSize);
+						GetTextExtentPoint32(hdc, sSpace, 1, &Globals.spaceSize);
 
 						/* change font in all open child windows */
 						for(childWnd=GetWindow(Globals.hmdiclient,GW_CHILD); childWnd; childWnd=GetNextWindow(childWnd,GW_HWNDNEXT)) {
@@ -2019,21 +2050,8 @@
 }
 
 
-static const LPTSTR g_pos_names[COLUMNS] = {
-	TEXT(""),			/* symbol */
-	TEXT("Name"),
-	TEXT("Size"),
-	TEXT("CDate"),
-#ifndef _NO_EXTENSIONS
-	TEXT("ADate"),
-	TEXT("MDate"),
-	TEXT("Index/Inode"),
-	TEXT("Links"),
-#endif /* _NO_EXTENSIONS */
-	TEXT("Attributes"),
-#ifndef _NO_EXTENSIONS
-	TEXT("Security")
-#endif
+static TCHAR g_pos_names[COLUMNS][20] = {
+	{'\0'}	/* symbol */
 };
 
 static const int g_pos_align[] = {
@@ -2120,17 +2138,19 @@
 
 static void init_output(HWND hwnd)
 {
+	const static TCHAR s1000[] = {'1','0','0','0','\0'};
+
 	TCHAR b[16];
 	HFONT old_font;
 	HDC hdc = GetDC(hwnd);
 
-	if (GetNumberFormat(LOCALE_USER_DEFAULT, 0, TEXT("1000"), 0, b, 16) > 4)
+	if (GetNumberFormat(LOCALE_USER_DEFAULT, 0, s1000, 0, b, 16) > 4)
 		Globals.num_sep = b[1];
 	else
 		Globals.num_sep = TEXT('.');
 
 	old_font = SelectFont(hdc, Globals.hfont);
-	GetTextExtentPoint32(hdc, TEXT(" "), 1, &Globals.spaceSize);
+	GetTextExtentPoint32(hdc, sSpace, 1, &Globals.spaceSize);
 	SelectFont(hdc, old_font);
 	ReleaseDC(hwnd, hdc);
 }
@@ -2329,10 +2349,12 @@
 
 static void create_tree_window(HWND parent, Pane* pane, int id, int id_header)
 {
+	const static TCHAR sListBox[] = {'L','i','s','t','B','o','x','\0'};
+
 	static int s_init = 0;
 	Entry* entry = pane->root;
 
-	pane->hwnd = CreateWindow(TEXT("ListBox"), TEXT(""), WS_CHILD|WS_VISIBLE|WS_HSCROLL|WS_VSCROLL|
+	pane->hwnd = CreateWindow(sListBox, sEmpty, WS_CHILD|WS_VISIBLE|WS_HSCROLL|WS_VSCROLL|
 								LBS_DISABLENOSCROLL|LBS_NOINTEGRALHEIGHT|LBS_OWNERDRAWFIXED|LBS_NOTIFY,
 								0, 0, 0, 0, parent, (HMENU)id, Globals.hInstance, 0);
 
@@ -2378,7 +2400,7 @@
 		return;
 
 	if (!FileTimeToLocalFileTime(ft, &lft))
-		{err: _tcscpy(buffer,TEXT("???")); return;}
+		{err: _tcscpy(buffer,sQMarks); return;}
 
 	if (!FileTimeToSystemTime(&lft, &systime))
 		goto err;
@@ -2489,28 +2511,28 @@
 
 static int is_exe_file(LPCTSTR ext)
 {
-	static const LPCTSTR executable_extensions[] = {
-		TEXT("COM"),
-		TEXT("EXE"),
-		TEXT("BAT"),
-		TEXT("CMD"),
+	static const TCHAR executable_extensions[][4] = {
+		{'C','O','M','\0'},
+		{'E','X','E','\0'},
+		{'B','A','T','\0'},
+		{'C','M','D','\0'},
 #ifndef _NO_EXTENSIONS
-		TEXT("CMM"),
-		TEXT("BTM"),
-		TEXT("AWK"),
+		{'C','M','M','\0'},
+		{'B','T','M','\0'},
+		{'A','W','K','\0'},
 #endif /* _NO_EXTENSIONS */
-		0
+		{'\0'}
 	};
 
 	TCHAR ext_buffer[_MAX_EXT];
-	const LPCTSTR* p;
+	const TCHAR (*p)[4];
 	LPCTSTR s;
 	LPTSTR d;
 
 	for(s=ext+1,d=ext_buffer; (*d=tolower(*s)); s++)
 		d++;
 
-	for(p=executable_extensions; *p; p++)
+	for(p=executable_extensions; (*p)[0]; p++)
 		if (!_tcscmp(ext_buffer, *p))
 			return 1;
 
@@ -2559,7 +2581,7 @@
 		} else {
 			LPCTSTR ext = _tcsrchr(entry->data.cFileName, '.');
 			if (!ext)
-				ext = TEXT("");
+				ext = sEmpty;
 
 			if (is_exe_file(ext))
 				img = IMG_EXECUTABLE;
@@ -2741,7 +2763,7 @@
 
                         size = ((ULONGLONG)entry->data.nFileSizeHigh << 32) | entry->data.nFileSizeLow;
 
-			_stprintf(buffer, TEXT("%") LONGLONGARG TEXT("d"), size);
+			_stprintf(buffer, sLongNumFmt, size);
 
 			if (calcWidthCol == -1)
 				output_number(pane, dis, col, buffer);
@@ -2783,20 +2805,24 @@
             ULONGLONG index = ((ULONGLONG)entry->bhfi.nFileIndexHigh << 32) | entry->bhfi.nFileIndexLow;
 
 		if (visible_cols & COL_INDEX) {
-			_stprintf(buffer, TEXT("%") LONGLONGARG TEXT("X"), index);
+			_stprintf(buffer, sLongHexFmt, index);
+
 			if (calcWidthCol == -1)
 				output_text(pane, dis, col, buffer, DT_RIGHT);
 			else if (calcWidthCol==col || calcWidthCol==COLUMNS)
 				calc_width(pane, dis, col, buffer);
+
 			col++;
 		}
 
 		if (visible_cols & COL_LINKS) {
-			wsprintf(buffer, TEXT("%d"), entry->bhfi.nNumberOfLinks);
+			wsprintf(buffer, sNumFmt, entry->bhfi.nNumberOfLinks);
+
 			if (calcWidthCol == -1)
 				output_text(pane, dis, col, buffer, DT_CENTER);
 			else if (calcWidthCol==col || calcWidthCol==COLUMNS)
 				calc_width(pane, dis, col, buffer);
+
 			col++;
 		}
 	} else
@@ -2806,9 +2832,11 @@
 	/* show file attributes */
 	if (visible_cols & COL_ATTRIBUTES) {
 #ifdef _NO_EXTENSIONS
-		_tcscpy(buffer, TEXT(" \t \t \t \t "));
+		const static TCHAR s4Tabs[] = {' ','\t',' ','\t',' ','\t',' ','\t',' ','\0'};
+		_tcscpy(buffer, s4Tabs);
 #else
-		_tcscpy(buffer, TEXT(" \t \t \t \t \t \t \t \t \t \t \t "));
+		const static TCHAR s11Tabs[] = {' ','\t',' ','\t',' ','\t',' ','\t',' ','\t',' ','\t',' ','\t',' ','\t',' ','\t',' ','\t',' ','\t',' ','\0'};
+		_tcscpy(buffer, s11Tabs);
 #endif
 
 		if (attrs & FILE_ATTRIBUTE_NORMAL)					buffer[ 0] = 'N';
@@ -2839,9 +2867,18 @@
 
 /*TODO
 	if (flags.security) {
+		const static TCHAR sSecTabs[] = {
+			' ','\t',' ','\t',' ','\t',' ',
+			' ','\t',' ',
+			' ','\t',' ','\t',' ','\t',' ',
+			' ','\t',' ',
+			' ','\t',' ','\t',' ','\t',' ',
+			'\0'
+		};
+
 		DWORD rights = get_access_mask();
 
-		tcscpy(buffer, TEXT(" \t \t \t  \t  \t \t \t  \t  \t \t \t "));
+		tcscpy(buffer, sSecTabs);
 
 		if (rights & FILE_READ_DATA)			buffer[ 0] = 'R';
 		if (rights & FILE_WRITE_DATA)			buffer[ 2] = 'W';
@@ -3708,9 +3745,12 @@
 
 static void InitInstance(HINSTANCE hinstance)
 {
+	const static TCHAR sFont[] = {'M','i','c','r','o','s','o','f','t',' ','S','a','n','s',' ','S','e','r','i','f','\0'};
+
 	WNDCLASSEX wcFrame;
 	WNDCLASS wcChild;
 	ATOM hChildClass;
+	int col;
 
 	INITCOMMONCONTROLSEX icc = {
 		sizeof(INITCOMMONCONTROLSEX),
@@ -3736,7 +3776,7 @@
 	wcFrame.hCursor       = LoadCursor(0, IDC_ARROW);
 	wcFrame.hbrBackground = 0;
 	wcFrame.lpszMenuName  = 0;
-	wcFrame.lpszClassName = WINEFILEFRAME;
+	wcFrame.lpszClassName = sWINEFILEFRAME;
 	wcFrame.hIconSm       = (HICON)LoadImage(hinstance,
 											 MAKEINTRESOURCE(IDI_WINEFILE),
 											 IMAGE_ICON,
@@ -3758,14 +3798,14 @@
 	wcChild.hCursor       = LoadCursor(0, IDC_ARROW);
 	wcChild.hbrBackground = 0;
 	wcChild.lpszMenuName  = 0;
-	wcChild.lpszClassName = WINEFILETREE;
+	wcChild.lpszClassName = sWINEFILETREE;
 
 	hChildClass = RegisterClass(&wcChild);
 
 
 	Globals.haccel = LoadAccelerators(hinstance, MAKEINTRESOURCE(IDA_WINEFILE));
 
-	Globals.hfont = CreateFont(-MulDiv(8,GetDeviceCaps(hdc,LOGPIXELSY),72), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, TEXT("MS Shell Dlg"));
+	Globals.hfont = CreateFont(-MulDiv(8,GetDeviceCaps(hdc,LOGPIXELSY),72), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, sFont);
 
 	ReleaseDC(0, hdc);
 
@@ -3775,13 +3815,36 @@
 	CoInitialize(NULL);
 	CoGetMalloc(MEMCTX_TASK, &Globals.iMalloc);
 	SHGetDesktopFolder(&Globals.iDesktop);
+#ifdef __WINE__
+	Globals.cfStrFName = RegisterClipboardFormatA(CFSTR_FILENAME);
+#else
 	Globals.cfStrFName = RegisterClipboardFormat(CFSTR_FILENAME);
 #endif
+#endif
+
+	/* load column strings */
+	col = 0;
+
+	load_string(g_pos_names[col++], IDS_COL_NAME);
+	load_string(g_pos_names[col++], IDS_COL_SIZE);
+	load_string(g_pos_names[col++], IDS_COL_CDATE);
+#ifndef _NO_EXTENSIONS
+	load_string(g_pos_names[col++], IDS_COL_ADATE);
+	load_string(g_pos_names[col++], IDS_COL_MDATE);
+	load_string(g_pos_names[col++], IDS_COL_IDX);
+	load_string(g_pos_names[col++], IDS_COL_LINKS);
+#endif
+	load_string(g_pos_names[col++], IDS_COL_ATTR);
+#ifndef _NO_EXTENSIONS
+	load_string(g_pos_names[col++], IDS_COL_SEC);
+#endif
 }
 
 
 void show_frame(HWND hwndParent, int cmdshow)
 {
+	const static TCHAR sMDICLIENT[] = {'M','D','I','C','L','I','E','N','T','\0'};
+
 	TCHAR path[MAX_PATH], b1[BUFFER_LEN];
 	ChildWnd* child;
 	HMENU hMenuFrame, hMenuWindow;
@@ -3810,7 +3873,7 @@
 					hwndParent, Globals.hMenuFrame, Globals.hInstance, 0/*lpParam*/);
 
 
-	Globals.hmdiclient = CreateWindowEx(0, TEXT("MDICLIENT"), NULL,
+	Globals.hmdiclient = CreateWindowEx(0, sMDICLIENT, NULL,
 					WS_CHILD|WS_CLIPCHILDREN|WS_VSCROLL|WS_HSCROLL|WS_VISIBLE|WS_BORDER,
 					0, 0, 0, 0,
 					Globals.hMainWnd, 0, Globals.hInstance, &ccs);
@@ -3833,7 +3896,10 @@
 #ifndef _NO_EXTENSIONS
 #ifdef __WINE__
 		/* insert unix file system button */
-		SendMessage(Globals.hdrivebar, TB_ADDSTRING, 0, (LPARAM)TEXT("/\0"));
+		b1[0] = '/';
+		b1[1] = '\0';
+		b1[2] = '\0';
+		SendMessage(Globals.hdrivebar, TB_ADDSTRING, 0, (LPARAM)b1);
 
 		drivebarBtn.idCommand = ID_DRIVE_UNIX_FS;
 		SendMessage(Globals.hdrivebar, TB_INSERTBUTTON, btn++, (LPARAM)&drivebarBtn);
@@ -4011,7 +4077,7 @@
 					 int	   cmdshow)
 {
 #ifdef _NO_EXTENSIONS
-	if (find_window_class(WINEFILEFRAME))
+	if (find_window_class(sWINEFILEFRAME))
 		return 1;
 #endif
 
diff --git a/programs/winefile/winefile.h b/programs/winefile/winefile.h
index 2fa4a29..1e6d94a 100644
--- a/programs/winefile/winefile.h
+++ b/programs/winefile/winefile.h
@@ -61,12 +61,6 @@
 #define	ASSERT(x)	/* nothing */
 #endif
 
-#ifdef _MSC_VER
-#define	LONGLONGARG _T("I64")
-#else
-#define	LONGLONGARG _T("L")
-#endif
-
 #define	BUFFER_LEN	1024
 
 
@@ -102,11 +96,6 @@
 #define	COLOR_SPLITBAR		LTGRAY_BRUSH
 #endif
 
-#define	WINEFILEFRAME		_T("WFS_Frame")
-#define	WINEFILETREE		_T("WFS_Tree")
-#define	WINEFILEDRIVES		_T("WFS_Drives")
-#define	WINEFILEMDICLIENT	_T("WFS_MdiClient")
-
 #define	FRM_CALC_CLIENT		0xBF83
 #define	Frame_CalcFrameClient(hwnd, prt) ((BOOL)SNDMSG(hwnd, FRM_CALC_CLIENT, 0, (LPARAM)(PRECT)prt))
 
@@ -154,8 +143,10 @@
 
 extern WINEFILE_GLOBALS Globals;
 
+#ifdef __WINE__
 #ifdef UNICODE
 extern void _wsplitpath(const WCHAR* path, WCHAR* drv, WCHAR* dir, WCHAR* name, WCHAR* ext);
 #else
 extern void _splitpath(const CHAR* path, CHAR* drv, CHAR* dir, CHAR* name, CHAR* ext);
 #endif
+#endif