ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/proj/trunk/VTBFileUtil2/ScanUtility.cxx
Revision: 269
Committed: 2003-08-19T01:19:24-07:00 (21 years, 10 months ago) by douglas
File size: 4339 byte(s)
Log Message:
Hello nurse!

File Contents

# Content
1 // Vance Thrift and Biller File Utility 2
2 //
3 // Douglas Thrift
4 //
5 // $Id: ScanUtility.cxx,v 1.4 2003/08/19 08:19:24 douglas Exp $
6
7 #include "ScanUtility.h"
8
9 ScanUtility::ScanUtility()
10 {
11 number = count++;
12 utilities.insert(pair<unsigned, ScanUtility*>(number, this));
13 title = new char[programName.length() + 16];
14
15 sprintf(title, "%s - Scan Utility", programName.c_str());
16 loadDirs();
17
18 PROPSHEETPAGE page;
19
20 // start
21 page.dwSize = sizeof(page);
22 page.dwFlags = PSP_DEFAULT | PSP_USEHICON | PSP_USETITLE |
23 PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
24 page.hInstance = gui.instance;
25 page.pszTemplate = MAKEINTRESOURCE(IDD_SCAN_START);
26 page.hIcon = gui.icon;
27 page.pszTitle = title;
28 page.pfnDlgProc = start;
29 page.lParam = number;
30 page.pszHeaderTitle = "Start";
31 page.pszHeaderSubTitle = "Change any settings before scanning.";
32
33 wizard[0] = CreatePropertySheetPage(&page);
34 }
35
36 ScanUtility::~ScanUtility()
37 {
38 utilities.erase(number);
39 saveDirs();
40
41 delete [] title;
42 }
43
44 void ScanUtility::run(void)
45 {
46 PROPSHEETHEADER header;
47
48 // header
49 header.dwSize = sizeof(header);
50 header.dwFlags = PSH_DEFAULT | PSH_HEADER | PSH_USEICONID | PSH_WIZARD97;
51 header.hwndParent = NULL;
52 header.hInstance = gui.instance;
53 header.pszIcon = MAKEINTRESOURCE(IDI_VTB_ICON);
54 header.nPages = 1;
55 header.nStartPage = 0;
56 header.phpage = wizard;
57 header.pszbmHeader = MAKEINTRESOURCE(IDB_VTB_BMP);
58
59 PropertySheet(&header);
60 }
61
62 unsigned ScanUtility::count = 0;
63 map<unsigned, ScanUtility*> ScanUtility::utilities;
64 map<HWND, ScanUtility*> ScanUtility::windows;
65
66 void ScanUtility::loadDirs(void)
67 {
68 HKEY key;
69
70 if (RegOpenKeyEx(HKEY_CURRENT_USER,
71 "Software\\DouglasThrift\\VTBFileUtil2", 0, KEY_READ, &key) ==
72 ERROR_SUCCESS)
73 {
74 DWORD type;
75 BYTE data[MAX_PATH];
76 DWORD size = MAX_PATH;
77
78 if (RegQueryValueEx(key, "ScanDir", NULL, &type, data, &size) ==
79 ERROR_SUCCESS)
80 {
81 char* buffer = new char[size];
82
83 data[size - 1] = '\0';
84
85 switch (type)
86 {
87 case REG_EXPAND_SZ:
88 sprintf(buffer, "%s", data);
89 ExpandEnvironmentStrings(buffer, scanDir, MAX_PATH);
90 cerr << "scanDir = " << scanDir << "\n";
91 break;
92 case REG_SZ:
93 sprintf(scanDir, "%s", data);
94 cerr << "scanDir = " << scanDir << "\n";
95 break;
96 default:
97 setScanDir();
98 break;
99 }
100
101 delete [] buffer;
102 }
103 else
104 {
105 setScanDir();
106 }
107
108 size = MAX_PATH;
109
110 if (RegQueryValueEx(key, "SaveDir", NULL, &type, data, &size) ==
111 ERROR_SUCCESS)
112 {
113 char* buffer = new char[size];
114
115 data[size - 1] = '\0';
116
117 switch (type)
118 {
119 case REG_EXPAND_SZ:
120 sprintf(buffer, "%s", data);
121 ExpandEnvironmentStrings(buffer, saveDir, MAX_PATH);
122 cerr << "saveDir = " << saveDir << "\n";
123 break;
124 case REG_SZ:
125 sprintf(saveDir, "%s", data);
126 cerr << "saveDir = " << saveDir << "\n";
127 break;
128 default:
129 setSaveDir();
130 break;
131 }
132
133 delete [] buffer;
134 }
135 else
136 {
137 setSaveDir();
138 }
139
140 RegCloseKey(key);
141 }
142 else
143 {
144 setScanDir();
145 setSaveDir();
146 }
147 }
148
149 void ScanUtility::saveDirs(void)
150 {
151 HKEY key;
152
153 if (RegCreateKeyEx(HKEY_CURRENT_USER,
154 "Software\\DouglasThrift\\VTBFileUtil2", 0, NULL,
155 REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &key, NULL) == ERROR_SUCCESS)
156 {
157 if (RegSetValueEx(key, "ScanDir", 0, REG_SZ, LPBYTE(scanDir),
158 strlen(scanDir) + 1) != ERROR_SUCCESS)
159 {
160 error();
161 }
162
163 if (RegSetValueEx(key, "SaveDir", 0, REG_SZ, LPBYTE(saveDir),
164 strlen(saveDir) + 1) != ERROR_SUCCESS)
165 {
166 error();
167 }
168
169 RegCloseKey(key);
170 }
171 else
172 {
173 error();
174 }
175 }
176
177 void ScanUtility::setScanDir(HWND parent)
178 {
179 sprintf(scanDir, "C:\\ScannedFiles\\");
180
181 //
182 }
183
184 void ScanUtility::setSaveDir(HWND parent)
185 {
186 sprintf(saveDir, "C:\\ScannedFiles\\Individual2003\\");
187
188 //
189 }
190
191 INT_PTR ScanUtility::start(HWND dialog, UINT msg, WPARAM w, LPARAM l)
192 {
193 map<HWND, ScanUtility*>::iterator itor = windows.find(dialog);
194 ScanUtility* data = itor->second;
195
196 switch (msg)
197 {
198 case WM_INITDIALOG:
199 center(GetParent(dialog));
200 {
201 map<unsigned, ScanUtility*>::iterator itor = utilities.find(l);
202
203 windows.insert(pair<HWND, ScanUtility*>(dialog, itor->second));
204 }
205 break;
206 case WM_NOTIFY:
207 {
208 LPNMHDR nm = (LPNMHDR) l;
209
210 switch (nm->code)
211 {
212 case PSN_SETACTIVE:
213 PropSheet_SetWizButtons(GetParent(dialog), PSWIZB_NEXT);
214 break;
215 }
216 }
217 case WM_DESTROY:
218 windows.erase(dialog);
219 break;
220 }
221
222 return FALSE;
223 }