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 268 by douglas, 2003-08-18T21:39:38-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.3 2003/08/19 04:39:38 douglas Exp $
5 > // $Id: ScanUtility.cxx,v 1.4 2003/08/19 08:19:24 douglas Exp $
6  
7   #include "ScanUtility.h"
8  
# Line 13 | Line 13 | ScanUtility::ScanUtility()
13          title = new char[programName.length() + 16];
14  
15          sprintf(title, "%s - Scan Utility", programName.c_str());
16 +        loadDirs();
17          
18          PROPSHEETPAGE page;
19  
# Line 35 | Line 36 | ScanUtility::ScanUtility()
36   ScanUtility::~ScanUtility()
37   {
38          utilities.erase(number);
39 +        saveDirs();
40 +
41          delete [] title;
42   }
43  
# Line 44 | Line 47 | void ScanUtility::run(void)
47  
48          // header
49          header.dwSize = sizeof(header);
50 <        header.dwFlags = PSH_DEFAULT | PSH_USEICONID | PSH_WIZARD97;
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   }
# Line 59 | Line 63 | 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);
# Line 67 | Line 196 | INT_PTR ScanUtility::start(HWND dialog,
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;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines