ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/proj/trunk/VTBFileUtil2/VTBFileUtil2.h
Revision: 286
Committed: 2003-09-02T21:12:41-07:00 (21 years, 9 months ago) by douglas
Content type: text/x-c
File size: 2528 byte(s)
Log Message:
Clearer license.

File Contents

# Content
1 // Vance Thrift and Biller File Utility 2
2 //
3 // Douglas Thrift
4 //
5 // $Id: VTBFileUtil2.h,v 1.15 2003/09/03 04:12:41 douglas Exp $
6
7 #ifndef _VTBFileUtil_h_
8 #define _VTBFileUtil_h_
9
10 #ifdef _DEBUG
11 #pragma warning(disable:4786)
12 #endif // _DEBUG
13
14 #include <iostream>
15 #include <string>
16 #include <sstream>
17 #include <cctype>
18 #include <vector>
19 #include <set>
20 #include <map>
21 #include <cstdlib>
22
23 #define _WIN32_IE 0x0500
24
25 #include <windows.h>
26 #include <windowsx.h>
27 #include <commctrl.h>
28 #include <objbase.h>
29 #include <shlobj.h>
30 #include <shlwapi.h>
31 #include <richedit.h>
32
33 #include "resource.h"
34
35 using namespace std;
36
37 enum Mode { none, disc, scan };
38 struct Gui
39 {
40 HINSTANCE instance;
41 HICON icon;
42 int show;
43 };
44
45 extern bool debug;
46 extern string program;
47 extern string programName;
48 extern string programVersion;
49 extern Gui gui;
50
51 void usage(HWND parent = NULL);
52 void version(HWND parent = NULL);
53
54 inline string toLower(const string& mixed)
55 {
56 string lower;
57
58 for (unsigned index = 0; index < mixed.length(); index++)
59 {
60 lower += tolower(mixed[index]);
61 }
62
63 return lower;
64 }
65
66 inline string toAnsi(const wstring& wide)
67 {
68 LPSTR buffer = new CHAR[wide.length() + 1];
69
70 WideCharToMultiByte(CP_ACP, 0, wide.c_str(), wide.length() + 1, buffer,
71 wide.length() + 1, NULL, NULL);
72
73 return buffer;
74 }
75
76 inline wstring toWide(const string& ansi)
77 {
78 LPWSTR buffer = new WCHAR[ansi.length() + 1];
79
80 MultiByteToWideChar(CP_ACP, 0, ansi.c_str(), ansi.length() + 1, buffer,
81 ansi.length() + 1);
82
83 return buffer;
84 }
85
86 inline void center(HWND window)
87 {
88 RECT rect, dialog, desktop;
89
90 GetWindowRect(GetDesktopWindow(), &desktop);
91 GetWindowRect(window, &dialog);
92 CopyRect(&rect, &desktop);
93
94 OffsetRect(&dialog, -dialog.left, -dialog.top);
95 OffsetRect(&rect, -rect.left, -rect.top);
96 OffsetRect(&rect, -dialog.right, -dialog.bottom);
97
98 SetWindowPos(window, HWND_TOP, desktop.left + (rect.right / 2), desktop.top
99 + (rect.bottom / 2), 0, 0, SWP_NOSIZE);
100 }
101
102 inline void error(HWND parent = NULL)
103 {
104 LPVOID message;
105
106 FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
107 FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), 0,
108 LPTSTR(&message), 0, NULL);
109 MessageBox(parent, LPCTSTR(message), programName.c_str(), MB_ICONERROR);
110 LocalFree(message);
111 }
112
113 inline string format(DWORD value)
114 {
115 ostringstream buffer;
116
117 buffer << value;
118
119 string format = buffer.str();
120
121 for (int index = format.length(), number = 0; index > 0; index -= 3,
122 number += 3)
123 {
124 if (index - 3 > 0)
125 {
126 format.insert(index - 3, 1, ',');
127 }
128 }
129
130 return format;
131 }
132
133 #endif // _VTBFileUtil_h_