2 |
|
// |
3 |
|
// Douglas Thrift |
4 |
|
// |
5 |
< |
// $Id: ScanUtility.cxx,v 1.14 2003/09/03 22:58:38 douglas Exp $ |
5 |
> |
// $Id: ScanUtility.cxx,v 1.16 2003/09/05 08:57:00 douglas Exp $ |
6 |
|
|
7 |
|
#include "ScanUtility.h" |
8 |
|
|
193 |
|
{ |
194 |
|
HKEY key; |
195 |
|
|
196 |
< |
if (RegCreateKeyEx(HKEY_CURRENT_USER, |
196 |
> |
if (LONG code = RegCreateKeyEx(HKEY_CURRENT_USER, |
197 |
|
"Software\\DouglasThrift\\VTBFileUtil2", 0, NULL, |
198 |
|
REG_OPTION_NON_VOLATILE, KEY_QUERY_VALUE | KEY_SET_VALUE, NULL, &key, |
199 |
|
NULL) == ERROR_SUCCESS) |
218 |
|
LPBYTE(scanDir.c_str()), scanDir.length() + 1) != |
219 |
|
ERROR_SUCCESS) |
220 |
|
{ |
221 |
< |
error(); |
221 |
> |
error(NULL, code); |
222 |
|
} |
223 |
|
} |
224 |
|
|
240 |
|
LPBYTE(saveDir.c_str()), saveDir.length() + 1) != |
241 |
|
ERROR_SUCCESS) |
242 |
|
{ |
243 |
< |
error(); |
243 |
> |
error(NULL, code); |
244 |
|
} |
245 |
|
} |
246 |
|
|
248 |
|
} |
249 |
|
else |
250 |
|
{ |
251 |
< |
error(); |
251 |
> |
error(NULL, code); |
252 |
|
} |
253 |
|
} |
254 |
|
|
381 |
|
|
382 |
|
FindClose(finder); |
383 |
|
} |
384 |
– |
else |
385 |
– |
{ |
386 |
– |
error(parent); |
387 |
– |
} |
384 |
|
|
385 |
|
if (scans.empty()) |
386 |
|
{ |
462 |
|
SendMessage(dialog, BFFM_SETOKTEXT, 0, |
463 |
|
LPARAM(toWide("&Select").c_str())); |
464 |
|
SendMessage(dialog, BFFM_SETEXPANDED, FALSE, CSIDL_DRIVES); |
465 |
< |
SendMessage(dialog, BFFM_SETSELECTION, TRUE, LPARAM(HIWORD(d) ? |
466 |
< |
data->scanDir.c_str() : data->saveDir.c_str())); |
465 |
> |
|
466 |
> |
if ((HIWORD(d) ? data->scanDir : data->saveDir) != "") |
467 |
> |
{ |
468 |
> |
IShellFolder* desktop; |
469 |
> |
LPWSTR path = new WCHAR[(HIWORD(d) ? data->scanDir.length() : |
470 |
> |
data->saveDir.length()) + 1]; |
471 |
> |
LPITEMIDLIST id; |
472 |
> |
|
473 |
> |
wsprintfW(path, toWide(HIWORD(d) ? data->scanDir : |
474 |
> |
data->saveDir).c_str()); |
475 |
> |
|
476 |
> |
if (debug) cerr << "path = " << toAnsi(path) << "\n"; |
477 |
> |
|
478 |
> |
SHGetDesktopFolder(&desktop); |
479 |
> |
desktop->ParseDisplayName(dialog, NULL, path, NULL, &id, NULL); |
480 |
> |
|
481 |
> |
if (id != NULL) |
482 |
> |
{ |
483 |
> |
SendMessage(dialog, BFFM_SETSELECTION, FALSE, LPARAM(id)); |
484 |
> |
|
485 |
> |
LPMALLOC destruct; |
486 |
> |
|
487 |
> |
SHGetMalloc(&destruct); |
488 |
> |
destruct->Free(id); |
489 |
> |
destruct->Release(); |
490 |
> |
} |
491 |
> |
|
492 |
> |
desktop->Release(); |
493 |
> |
} |
494 |
|
break; |
495 |
|
case BFFM_SELCHANGED: |
496 |
|
{ |