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

Comparing trunk/VTBFileUtil2/ScanUtility.cxx (file contents):
Revision 265 by douglas, 2003-08-16T20:55:39-07:00 vs.
Revision 269 by douglas, 2003-08-19T01:19:24-07:00

# Line 2 | Line 2
2   //
3   // Douglas Thrift
4   //
5 < // $Id: ScanUtility.cxx,v 1.2 2003/08/17 03:55:39 douglas Exp $
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 <        multimap<unsigned, string> clients;
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 <        clients.insert(pair<unsigned, string>(12345, "Thrift, Douglas W."));
154 <        clients.insert(pair<unsigned, string>(123, "McConica, John"));
155 <        clients.insert(pair<unsigned, string>(456, "MacDonald, Joe"));
156 <        clients.insert(pair<unsigned, string>(789, "O'Neil, Paul"));
157 <        clients.insert(pair<unsigned, string>(100, "Haley, Robert Jr."));
158 <        clients.insert(pair<unsigned, string>(99, "Haley, Robert Sr."));
159 <        clients.insert(pair<unsigned, string>(567, "Woodburn, Douglas II."));
160 <        clients.insert(pair<unsigned, string>(567, "Woodburn, Douglas III."));
161 <        clients.insert(pair<unsigned, string>(897, "De Groote, Fred IV."));
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 <        for (multimap<unsigned, string>::iterator itor = clients.begin(); itor !=
170 <                clients.end(); itor++)
169 >                RegCloseKey(key);
170 >        }
171 >        else
172          {
173 <                IndividualClient client;
173 >                error();
174 >        }
175 > }
176  
177 <                client.setNumber(itor->first);
178 <                client.setName(itor->second);
179 <                client.setFile(client.getFile());
177 > void ScanUtility::setScanDir(HWND parent)
178 > {
179 >        sprintf(scanDir, "C:\\ScannedFiles\\");
180  
181 <                cout << client.getName() << "\n"
182 <                        << client.getNumber() << "\n";
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   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines