ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/proj/trunk/VTBFileUtil2/VTBFileUtil2.cxx
(Generate patch)

Comparing trunk/VTBFileUtil2/VTBFileUtil2.cxx (file contents):
Revision 277 by douglas, 2003-08-24T00:31:45-07:00 vs.
Revision 293 by douglas, 2003-09-10T19:15:05-07:00

# Line 2 | Line 2
2   //
3   // Douglas Thrift
4   //
5 < // $Id: VTBFileUtil2.cxx,v 1.12 2003/08/24 07:31:45 douglas Exp $
5 > // $Id: VTBFileUtil2.cxx,v 1.14 2003/09/11 02:15:05 douglas Exp $
6  
7   #include "VTBFileUtil2.h"
8   #include "Chooser.h"
# Line 15 | Line 15
15   bool debug = false;
16   string program;
17   string programName = "Vance Thrift and Biller File Utility 2";
18 < string programVersion = "2.0alpha";
18 > string programVersion = "2.0";
19   Gui gui;
20  
21 < INT_PTR CALLBACK usage(HWND dialog, UINT msg, WPARAM w, LPARAM l);
22 < INT_PTR CALLBACK version(HWND dialog, UINT msg, WPARAM w, LPARAM l);
21 > static INT_PTR CALLBACK usage(HWND dialog, UINT msg, WPARAM w, LPARAM l);
22 > static INT_PTR CALLBACK version(HWND dialog, UINT msg, WPARAM w, LPARAM l);
23  
24 < inline void arguments(vector<string>& args, const string& command)
24 > static inline void arguments(vector<string>& args, const string& command)
25   {
26          istringstream line(command);
27          string arg;
# Line 47 | Line 47 | inline void arguments(vector<string>& ar
47          while (line.good());
48   }
49  
50 < inline void munge(void)
50 > static inline void munge(void)
51   {
52          AllocConsole();
53          SetConsoleTitle(programName.c_str());
# Line 73 | Line 73 | inline void munge(void)
73          cerr.sync_with_stdio();
74   }
75  
76 < inline void usage(HWND parent)
76 > void usage(HWND parent)
77   {
78          DialogBox(gui.instance, MAKEINTRESOURCE(IDD_USAGE), parent, usage);
79   }
80  
81 < inline void version(HWND parent)
81 > void version(HWND parent)
82   {
83          DialogBox(gui.instance, MAKEINTRESOURCE(IDD_VERSION), parent, version);
84   }
# Line 100 | Line 100 | int WINAPI WinMain(HINSTANCE hInstance,
100          gui.icon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_VTB_ICON));
101          gui.show = nShowCmd;
102  
103 +        if (toAnsi(toWide("Douglas")) != "Douglas")
104 +        {
105 +                string message = "Could not find the Microsoft Layer for Unicode.";
106 +
107 +                switch (MessageBox(NULL, message.c_str(), programName.c_str(),
108 +                        MB_ABORTRETRYIGNORE | MB_ICONERROR))
109 +                {
110 +                case IDABORT:
111 +                        return 1;
112 +                        break;
113 +                case IDRETRY:
114 +                        {
115 +                                string url = string("http://www.microsoft.com/downloads/detai")
116 +                                        + "ls.aspx?FamilyID=73ba7bd7-ed06-4f0d-80a4-2a7eeaee17e2&D"
117 +                                        + "isplayLang=en", message = string("Click OK when the Mi")
118 +                                        + "crosoft Layer for Unicode is installed.";
119 +
120 +                                ShellExecute(NULL, NULL, url.c_str(), NULL, NULL, gui.show);
121 +                                MessageBox(NULL, message.c_str(), programName.c_str(), MB_OK |
122 +                                        MB_ICONINFORMATION);
123 +
124 +                                STARTUPINFO start;
125 +                                PROCESS_INFORMATION info;
126 +
127 +                                start.cb = sizeof(start);
128 +                                start.lpReserved = NULL;
129 +                                start.lpDesktop = NULL;
130 +                                start.lpTitle = NULL;
131 +                                start.dwFlags = STARTF_FORCEONFEEDBACK | STARTF_USESHOWWINDOW;
132 +                                start.wShowWindow = gui.show;
133 +                                start.cbReserved2 = 0;
134 +                                start.lpReserved2 = NULL;
135 +
136 +                                CreateProcess(program.c_str(), GetCommandLine(), NULL, NULL,
137 +                                        FALSE, 0, NULL, NULL, &start, &info);
138 +                                CloseHandle(info.hProcess);
139 +                                CloseHandle(info.hThread);
140 +                        }
141 +                        return 0;
142 +                        break;
143 +                case IDIGNORE:
144 +                        break;
145 +                }
146 +        }
147 +
148          for (unsigned index = 1; index < args.size(); index++)
149          {
150                  if (args[index] == "-help")
# Line 162 | Line 207 | int WINAPI WinMain(HINSTANCE hInstance,
207                  cerr << "\n";
208          }
209  
210 +        License license;
211 +
212 +        license.check();
213 +
214          if (mode == none)
215          {
216                  Chooser chooser;
# Line 209 | Line 258 | int WINAPI WinMain(HINSTANCE hInstance,
258  
259          if (debug)
260          {
261 <                cout << "Press enter key to exit . . .";
262 <                cin.get();
261 >                char cmd[MAX_PATH];
262 >                char arg[MAX_PATH];
263 >
264 >                GetEnvironmentVariable("ComSpec", cmd, MAX_PATH);
265 >                sprintf(arg, "%s /c pause", cmd);
266 >
267 >                STARTUPINFO start;
268 >                PROCESS_INFORMATION info;
269 >
270 >                start.cb = sizeof(start);
271 >                start.lpReserved = NULL;
272 >                start.lpDesktop = NULL;
273 >                start.lpTitle = NULL;
274 >                start.dwFlags = STARTF_USESTDHANDLES;
275 >                start.cbReserved2 = 0;
276 >                start.lpReserved2 = NULL;
277 >                start.hStdInput = GetStdHandle(STD_INPUT_HANDLE);
278 >                start.hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE);
279 >                start.hStdError = GetStdHandle(STD_ERROR_HANDLE);
280 >
281 >                CreateProcess(cmd, arg, NULL, NULL, TRUE, 0, NULL, NULL, &start, &info);
282 >                CloseHandle(info.hProcess);
283 >                CloseHandle(info.hThread);
284          }
285  
286          return 0;
# Line 224 | Line 294 | INT_PTR CALLBACK usage(HWND dialog, UINT
294                  center(dialog);
295                  SendMessage(dialog, WM_SETICON, ICON_BIG, LPARAM(gui.icon));
296                  SendMessage(dialog, WM_SETTEXT, 0, LPARAM(programName.c_str()));
297 +
298                  {
299                          ostringstream usage;
300  
301 <                        usage << "Usage: VTBFileUtil [-help | -version | -disc | -scan]\n"
302 <                                << "\nOptions:\n"
303 <                                << "  -help\t\tDisplay this information\n"
304 <                                << "  -version\tDisplay version information\n"
305 <                                << "  -disc\t\tStart in Disc Browse mode\n"
306 <                                << "  -scan\t\tStart in Scan Utility mode\n";
301 >                        usage << "Usage: VTBFileUtil [-help | -version | -disc | -scan]\r"
302 >                                << "\n"
303 >                                << "\r\nOptions:\r\n"
304 >                                << "  -help\t\tDisplay this information\r\n"
305 >                                << "  -version\t\tDisplay version information\r\n"
306 >                                << "  -disc\t\tStart in Disc Browse mode\r\n"
307 >                                << "  -scan\t\tStart in Scan Utility mode\r\n";
308  
309                          SetDlgItemText(dialog, IDC_USAGE_TEXT, usage.str().c_str());
310                  }
# Line 261 | Line 333 | INT_PTR CALLBACK version(HWND dialog, UI
333                  center(dialog);
334                  SendMessage(dialog, WM_SETICON, ICON_BIG, LPARAM(gui.icon));
335                  SendMessage(dialog, WM_SETTEXT, 0, LPARAM(programName.c_str()));
336 +                
337                  {
338                          ostringstream version;
339  
340 <                        version << programName << " (" << programVersion << ")\n\n"
340 >                        version << programName << " (" << programVersion << ")\r\n\r\n"
341                                  << "Copyright © 2003, Douglas Thrift.\n";
342  
343                          SetDlgItemText(dialog, IDC_VERSION_TEXT, version.str().c_str());

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines