Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(86)

Side by Side Diff: third_party/npapi/npspy/windows/dirpick.cpp

Issue 665543002: Remove third_party/npapi/npspy. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/npapi/npspy/readme ('k') | third_party/npapi/npspy/windows/gui_advanced.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* ***** BEGIN LICENSE BLOCK *****
3 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
4 *
5 * The contents of this file are subject to the Mozilla Public License Version
6 * 1.1 (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 * http://www.mozilla.org/MPL/
9 *
10 * Software distributed under the License is distributed on an "AS IS" basis,
11 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12 * for the specific language governing rights and limitations under the
13 * License.
14 *
15 * The Original Code is mozilla.org code.
16 *
17 * The Initial Developer of the Original Code is
18 * Netscape Communications Corporation.
19 * Portions created by the Initial Developer are Copyright (C) 1998
20 * the Initial Developer. All Rights Reserved.
21 *
22 * Contributor(s):
23 *
24 * Alternatively, the contents of this file may be used under the terms of
25 * either the GNU General Public License Version 2 or later (the "GPL"), or
26 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
27 * in which case the provisions of the GPL or the LGPL are applicable instead
28 * of those above. If you wish to allow use of your version of this file only
29 * under the terms of either the GPL or the LGPL, and not to allow others to
30 * use your version of this file under the terms of the MPL, indicate your
31 * decision by deleting the provisions above and replace them with the notice
32 * and other provisions required by the GPL or the LGPL. If you do not delete
33 * the provisions above, a recipient may use your version of this file under
34 * the terms of any one of the MPL, the GPL or the LGPL.
35 *
36 * ***** END LICENSE BLOCK ***** */
37 #define _CRT_SECURE_NO_DEPRECATE
38
39 #include <windows.h>
40 #include <windowsx.h>
41 #include <direct.h>
42 #include <stdio.h>
43
44 #include "resource.h"
45
46 extern HINSTANCE hInst;
47
48 #define ITEM_BITMAPWIDTH 16
49 #define ITEM_BITMAPHEIGHT 16
50 #define ITEM_LEFTMARGIN 4
51 #define ITEM_GAP 4
52
53 static HWND hWndDirPicker;
54 static HICON hIconDrives[5];
55 static HICON hIconFolders[3];
56 static LPSTR lpszStringToReturn;
57 static char szUNCRoot[256] = "";
58
59 UINT DriveType(UINT iType);
60
61 static void fillComboBox(HWND hWnd)
62 {
63 HWND hWndCB = GetDlgItem(hWnd, ID_COMBO_DIR);
64 HWND hWndTempLB = GetDlgItem(hWnd, ID_LISTTEMP_DIR);
65 if(hWndCB == NULL)
66 return;
67 ComboBox_ResetContent(hWndCB);
68 ListBox_ResetContent(hWndTempLB);
69 ListBox_Dir(hWndTempLB, DDL_DRIVES|DDL_EXCLUSIVE, (LPSTR)"*");
70
71 int iDriveCount = ListBox_GetCount(hWndTempLB);
72 int iCurDrive=_getdrive() - 1;
73
74 char szDrive[16];
75 char szItem[80];
76
77 for (int i = 0; i < iDriveCount; i++)
78 {
79 ListBox_GetText(hWndTempLB, i, szDrive);
80 CharLower(szDrive);
81 int iDrive = szDrive[2] - 'a';
82 char szRoot[16];
83 sprintf(szRoot, "%c:\\", szDrive[2]);
84
85 int iType = DriveType(iDrive);
86
87 if(iType < 2)
88 continue;
89
90 //Start the item string with the drive letter, colon, and two spaces
91 sprintf(szItem, "%c%s", szDrive[2], ": ");
92
93 if((iType == DRIVE_FIXED) || (iType == DRIVE_RAMDISK))
94 { // get volume ID
95 char szVolumeID[80];
96 DWORD dwMaxLength;
97 DWORD dwSysFlags;
98 GetVolumeInformation(szRoot, // address of root directory of t he file system
99 szVolumeID, // address of name of the volume
100 sizeof(szVolumeID), // length of lpVolumeNameBuffer
101 NULL, // address of volume serial numbe r
102 &dwMaxLength, // address of system's maximum fi lename length
103 &dwSysFlags, // address of file system flags
104 NULL, // address of name of file system
105 NULL); // length of lpFileSystemNameBuff er
106
107 CharLower(szVolumeID);
108 lstrcat(szItem, szVolumeID);
109 }
110
111 //For network drives, go grab the \\server\share for it.
112 if(DRIVE_REMOTE == iType)
113 {
114 char szNet[64];
115 szNet[0] = '\0';
116 DWORD dwSizeOfszNet = sizeof(szNet);
117
118 sprintf(szDrive, "%c:", szDrive[2]);
119 CharUpper(szDrive);
120 WNetGetConnection(szDrive, szNet, &dwSizeOfszNet);
121 CharLower(szNet);
122 lstrcat(szItem, szNet);
123 }
124
125 int index = ComboBox_AddString(hWndCB, szItem);
126 ComboBox_SetItemData(hWndCB, index, MAKELONG(iDrive, iType));
127 if(iDrive == iCurDrive)
128 ComboBox_SetCurSel(hWndCB, index);
129 if(szUNCRoot[0] != '\0')
130 ComboBox_SetCurSel(hWndCB, -1);
131 }
132 }
133
134 static void fillTempLBWithDirs(HWND hWndTempLB, LPSTR lpszDir)
135 {
136 BOOL bDone = FALSE;
137 WIN32_FIND_DATA ffdataStruct;
138
139 char szPath[_MAX_PATH];
140 char szFileName[_MAX_PATH];
141 lstrcpy(szPath, lpszDir);
142 if(szPath[lstrlen(szPath) - 1] == '\\')
143 szPath[lstrlen(szPath) - 1] = '\0';
144 lstrcpy(szFileName, szPath);
145 lstrcat(szFileName, "\\*");
146 HANDLE handle = FindFirstFile(szFileName, &ffdataStruct);
147 if(handle == INVALID_HANDLE_VALUE)
148 {
149 FindClose(handle);
150 return;
151 }
152 while(!bDone)
153 {
154 lstrcpy(szFileName, szPath);
155 lstrcat(szFileName, "\\");
156 lstrcat(szFileName, ffdataStruct.cFileName);
157 if(ffdataStruct. dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
158 {
159 char szStringToAdd[_MAX_PATH + 2];
160 lstrcpy(szStringToAdd, "[");
161 lstrcat(szStringToAdd, ffdataStruct.cFileName);
162 lstrcat(szStringToAdd, "]");
163 CharLower(szStringToAdd);
164 ListBox_AddString(hWndTempLB, szStringToAdd);
165 }
166 bDone = !FindNextFile(handle, &ffdataStruct);
167 }
168 FindClose(handle);
169 }
170
171 static void fillListBox(HWND hWnd, LPSTR lpszDir)
172 {
173 HWND hWndLB = GetDlgItem(hWnd, ID_LIST_DIR);
174 HWND hWndTempLB = GetDlgItem(hWnd, ID_LISTTEMP_DIR);
175 HWND hWndEdit = GetDlgItem(hWnd, ID_EDIT_DIR);
176 if((hWndLB == NULL) || (lpszDir == NULL))
177 return;
178
179 int iLastChar = lstrlen(lpszDir);
180 if(lpszDir[iLastChar - 1] == '\\')
181 lpszDir[iLastChar - 1] = '\0';
182
183 SetWindowRedraw(hWndLB, FALSE);
184 ListBox_ResetContent(hWndLB);
185 ListBox_ResetContent(hWndTempLB);
186
187 LPSTR lpszLast;
188 lpszLast = CharLower(lpszDir);
189
190 SetWindowText(hWndLB, lpszDir);
191
192 char szDir[_MAX_DIR];
193 char szFullDir[_MAX_DIR];
194 sprintf(szFullDir, "%s", lpszDir);
195 sprintf(szDir, "%s\\*.*", lpszDir);
196
197 BOOL bFirst = TRUE;
198 char ch;
199 int index;
200 while (TRUE)
201 {
202 LPSTR lpsz;
203 if((lpszDir[0] == '\\') && (lpszDir[1] == '\\') && bFirst)
204 lpsz = strchr(lpszLast + lstrlen(szUNCRoot), '\\');
205 else
206 lpsz = strchr(lpszLast, '\\');
207 if(lpsz != NULL) {
208 if (bFirst)
209 ch = *(++lpsz);
210 else
211 ch = *lpsz;
212 *lpsz = 0;
213 }
214 else
215 {
216 //If we're looking at a drive only, then append a backslash
217 if (lpszLast == lpszDir && bFirst)
218 lstrcat(lpszLast, "\\");
219 }
220 //Add the drive string--includes the last one where lpsz == NULL
221 index = ListBox_AddString(hWndLB, lpszLast);
222
223 UINT i = (NULL != lpsz) ? ID_ICON_FOLDEROPEN : ID_ICON_OPENSELECT;
224 ListBox_SetItemData(hWndLB, index, MAKELONG(index, i));
225
226 if(NULL == lpsz)
227 break;
228
229 //Restore last character.
230 *lpsz = ch;
231 lpsz += (bFirst) ? 0 : 1;
232
233 bFirst=FALSE;
234 lpszLast = lpsz;
235 }
236 int indent = index + 1;
237
238 //Get available directories
239 fillTempLBWithDirs(hWndTempLB, lpszDir);
240
241 int itemCount = ListBox_GetCount(hWndTempLB);
242
243 int i=0;
244 for (i = 0; i < itemCount; i++) {
245 index = ListBox_GetText(hWndTempLB, i, lpszDir);
246 //Skip directories beginning with . (skipping . and ..)
247 if(lpszDir[1] == '.')
248 continue;
249 //Remove the ending ']'
250 iLastChar = lstrlen(lpszDir);
251 lpszDir[iLastChar - 1] = '\0';
252 //Add the string to the real directory list.
253 index = ListBox_AddString(hWndLB, lpszDir + 1);
254 ListBox_SetItemData(hWndLB, index, MAKELONG(indent, ID_ICON_FOLDERCLOSED));
255 }
256 //Force a listbox repaint.
257 SetWindowRedraw(hWndLB, TRUE);
258 InvalidateRect(hWndLB, NULL, TRUE);
259
260 if(szFullDir[lstrlen(szFullDir) - 1] == ':')
261 lstrcat(szFullDir, "\\");
262 Edit_SetText(hWndEdit, szFullDir);
263
264 GetScrollRange(hWndLB, SB_VERT, (LPINT)&i, (LPINT)&index);
265
266 if(!(i == 0 && index == 0))
267 ListBox_SetTopIndex(hWndLB, max((int)(index - 2), 0));
268
269 ListBox_SetCurSel(hWndLB, indent - 1);
270 }
271
272 static void onDrawItem(LPDRAWITEMSTRUCT lpdis, BOOL bDrive)
273 {
274 if((int)lpdis->itemID < 0)
275 return;
276
277 char szItem[_MAX_DIR];
278 DWORD dwItemData;
279
280 if(bDrive)
281 {
282 dwItemData = ComboBox_GetItemData(lpdis->hwndItem, lpdis->itemID);
283 ComboBox_GetLBText(lpdis->hwndItem, lpdis->itemID, szItem);
284 }
285 else
286 {
287 dwItemData = ListBox_GetItemData(lpdis->hwndItem, lpdis->itemID);
288 ListBox_GetText(lpdis->hwndItem, lpdis->itemID, szItem);
289 }
290
291 if(lpdis->itemAction & (ODA_DRAWENTIRE | ODA_SELECT))
292 {
293 COLORREF colorText;
294 COLORREF colorBack;
295 if(lpdis->itemState & ODS_SELECTED)
296 {
297 colorText = SetTextColor(lpdis->hDC, GetSysColor(COLOR_HIGHLIGHTTEXT));
298 colorBack = SetBkColor(lpdis->hDC, GetSysColor(COLOR_HIGHLIGHT));
299 }
300 HICON hIcon;
301 int indent = 0;
302 if(bDrive)
303 {
304 int iType=(int)HIWORD(dwItemData);
305 switch (iType)
306 {
307 case DRIVE_REMOVABLE:
308 hIcon = hIconDrives[0];
309 break;
310 case DRIVE_FIXED:
311 hIcon = hIconDrives[1];
312 break;
313 case DRIVE_REMOTE:
314 hIcon = hIconDrives[2];
315 break;
316 case DRIVE_CDROM:
317 hIcon = hIconDrives[3];
318 break;
319 case DRIVE_RAMDISK:
320 hIcon = hIconDrives[4];
321 break;
322 }
323
324 }
325 else
326 {
327 int iconID = (int)HIWORD(lpdis->itemData);
328 switch (iconID)
329 {
330 case ID_ICON_FOLDERCLOSED:
331 hIcon = hIconFolders[0];
332 break;
333 case ID_ICON_FOLDEROPEN:
334 hIcon = hIconFolders[1];
335 break;
336 case ID_ICON_OPENSELECT:
337 hIcon = hIconFolders[2];
338 break;
339 }
340 indent = 4 * (1 + LOWORD(lpdis->itemData));
341 }
342
343 ExtTextOut(lpdis->hDC,
344 lpdis->rcItem.left + ITEM_LEFTMARGIN + ITEM_BITMAPWIDTH + ITEM_GA P + indent,
345 lpdis->rcItem.top,
346 ETO_OPAQUE | ETO_CLIPPED,
347 &lpdis->rcItem,
348 szItem,
349 lstrlen(szItem),
350 NULL);
351
352 BOOL res = DrawIcon(lpdis->hDC,
353 lpdis->rcItem.left + ITEM_LEFTMARGIN + indent,
354 lpdis->rcItem.top,
355 hIcon);
356
357 if(lpdis->itemState & ODS_SELECTED)
358 {
359 SetTextColor(lpdis->hDC, colorText);
360 SetBkColor(lpdis->hDC, colorBack);
361 }
362 }
363 if((lpdis->itemAction & ODA_FOCUS) || (lpdis->itemState & ODS_FOCUS))
364 DrawFocusRect(lpdis->hDC, &lpdis->rcItem);
365 }
366
367 static void fillUNCRootArray(LPSTR lpsz)
368 {
369 char szCurDir[_MAX_PATH];
370 _getcwd(szCurDir, sizeof(szCurDir));
371 lstrcpy(szUNCRoot, lpsz);
372 if(szUNCRoot[lstrlen(szUNCRoot) - 1] == '\\')
373 szUNCRoot[lstrlen(szUNCRoot) - 1] = '\0';
374 for(;;)
375 {
376 LPSTR lptemp = strrchr(szUNCRoot, '\\');
377 if(lptemp == NULL)
378 break;
379 *lptemp = '\0';
380 if(_chdir(szUNCRoot) == -1)
381 {
382 *lptemp = '\\';
383 break;
384 }
385 }
386 _chdir(szCurDir);
387 }
388
389 static void onInitDialog(HWND hWnd, LPSTR lpsz)
390 {
391 hWndDirPicker = hWnd;
392 lpszStringToReturn = lpsz;
393
394 hIconDrives[0] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_DRIVEFLOPPY));
395 hIconDrives[1] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_DRIVEHARD));
396 hIconDrives[2] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_DRIVENETWORK));
397 hIconDrives[3] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_DRIVECDROM));
398 hIconDrives[4] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_DRIVERAM));
399
400 hIconFolders[0] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_FOLDERCLOSED));
401 hIconFolders[1] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_FOLDEROPEN));
402 hIconFolders[2] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_OPENSELECT));
403
404 if(lpsz[0] == '\0')
405 _getcwd(lpsz, _MAX_PATH);
406 else if(lpsz[lstrlen(lpsz) - 1] == ':')
407 lstrcat(lpsz, "\\");
408
409 int ret = _chdir(lpsz);
410 if(ret == -1)
411 {
412 char szText[_MAX_PATH + 80];
413 sprintf(szText, "The specified directory %s\ncannot be found", lpsz);
414 MessageBox(GetParent(hWnd), szText, "Choose Directory", MB_ICONEXCLAMATION|M B_OK);
415 _getcwd(lpsz, _MAX_PATH);
416 }
417 if((lpsz[0] == '\\') && (lpsz[1] == '\\'))
418 fillUNCRootArray(lpsz);
419 fillListBox(hWnd, lpsz);
420 fillComboBox(hWnd);
421 }
422
423 static void shutDialog(HWND hWnd)
424 {
425 szUNCRoot[0] = '\0';
426 }
427
428 static void onCommand(HWND hWnd, int id, HWND hWndCtl, UINT codeNotify)
429 {
430 char szCurDir[_MAX_PATH];
431 switch(id)
432 {
433 case ID_LIST_DIR:
434 if(codeNotify == LBN_DBLCLK)
435 {
436 int index = ListBox_GetCurSel(hWndCtl);
437 DWORD dwItemData = ListBox_GetItemData(hWndCtl, index);
438
439 if(HIWORD(dwItemData) == ID_ICON_OPENSELECT)
440 {
441 shutDialog(hWnd);
442 char szString[_MAX_PATH];
443 Edit_GetText(GetDlgItem(hWndDirPicker, ID_EDIT_DIR), szString, sizeof( szString));
444 lstrcpy(lpszStringToReturn, szString);
445 EndDialog(hWnd, IDOK);
446 break;
447 }
448
449 ListBox_GetText(hWndCtl, index, szCurDir);
450
451 char szDir[_MAX_DIR];
452 LPSTR lpsz;
453 if((HIWORD(dwItemData) == ID_ICON_FOLDEROPEN) && (index != 0))
454 {
455 GetWindowText(hWndCtl, szDir, sizeof(szDir));
456 lpsz=_fstrstr(szDir, szCurDir);
457 *(lpsz + lstrlen(szCurDir)) = '\0';
458 lstrcpy(szCurDir, szDir);
459 }
460 if (_chdir(szCurDir) == 0)
461 {
462 _getcwd(szCurDir, _MAX_PATH);
463 fillListBox(hWndDirPicker, szCurDir);
464 }
465 }
466 break;
467 case ID_COMBO_DIR:
468 if(codeNotify == CBN_SELCHANGE)
469 {
470 char szDrive[80];
471 int index = ComboBox_GetCurSel(hWndCtl);
472 if(index == CB_ERR)
473 break;
474 ComboBox_GetLBText(hWndCtl, index, szDrive);
475
476 int iCurDrive = _getdrive();
477 Retry:
478 HCURSOR hCursorOld = SetCursor(LoadCursor(NULL, IDC_WAIT));
479 SetCapture(hWndDirPicker);
480 if((0 == _chdrive((int)(szDrive[0] - 'a' + 1))) && (NULL != _getcwd(szCu rDir, _MAX_PATH)))
481 {
482 fillListBox(hWndDirPicker, szCurDir);
483 ListBox_SetTopIndex(GetDlgItem(hWndDirPicker, ID_LIST_DIR), 0);
484 SetCursor(hCursorOld);
485 ReleaseCapture();
486 break;
487 }
488 SetCursor(hCursorOld);
489 ReleaseCapture();
490
491 char szText[80];
492 sprintf(szText, "Cannot read drive %c:", szDrive[0]);
493 if(IDRETRY == MessageBox(hWndDirPicker, szText, "Choose Directory", MB_I CONEXCLAMATION|MB_RETRYCANCEL))
494 goto Retry;
495
496 //Changing drives failed so restore drive and selection
497 _chdrive(iCurDrive);
498
499 sprintf(szDrive, "%c:", (char)(iCurDrive + 'a' - 1));
500 index = ComboBox_SelectString(hWndCtl, -1, szDrive);
501 }
502 break;
503 case IDOK:
504 shutDialog(hWnd);
505 char szString[_MAX_PATH];
506 Edit_GetText(GetDlgItem(hWndDirPicker, ID_EDIT_DIR), szString, sizeof(szSt ring));
507 lstrcpy(lpszStringToReturn, szString);
508 EndDialog(hWnd, IDOK);
509 break;
510 case IDCANCEL:
511 shutDialog(hWnd);
512 lpszStringToReturn[0] = '\0';
513 EndDialog(hWnd, IDCANCEL);
514 break;
515 default:
516 break;
517 }
518 }
519
520 static BOOL CALLBACK DirPickDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM l Param)
521 {
522 switch(msg) {
523 case WM_INITDIALOG:
524 onInitDialog(hWnd, (LPSTR)lParam);
525 break;
526 case WM_COMMAND:
527 HANDLE_WM_COMMAND(hWnd, wParam, lParam, onCommand);
528 break;
529 case WM_MEASUREITEM:
530 {
531 static int cyItem = -1; //Height of a listbox item
532 LPMEASUREITEMSTRUCT lpmis = (LPMEASUREITEMSTRUCT)lParam;
533 if(cyItem == -1)
534 {
535 HFONT hFont = (HFONT)SendMessage(hWnd, WM_GETFONT, 0, 0L);
536 if(hFont == NULL)
537 hFont = GetStockFont(SYSTEM_FONT);
538 HDC hDC = GetDC(hWnd);
539 HFONT hFontOld = SelectFont(hDC, hFont);
540 TEXTMETRIC tm;
541 GetTextMetrics(hDC, &tm);
542 cyItem = max(ITEM_BITMAPHEIGHT, tm.tmHeight);
543 SelectFont(hDC, hFontOld);
544 ReleaseDC(hWnd, hDC);
545 }
546
547 lpmis->itemHeight = cyItem;
548 }
549 break;
550 case WM_DRAWITEM:
551 onDrawItem((LPDRAWITEMSTRUCT)lParam, ((UINT)wParam == ID_COMBO_DIR));
552 return TRUE; // to prevent default action in listbox (drawing focus)
553 default:
554 return FALSE;
555 }
556 return TRUE;
557 }
558
559 /*
560 * DriveType
561 *
562 * Purpose:
563 * Augments the Windows API GetDriveType with a call to the CD-ROM
564 * extensions to determine if a drive is a floppy, hard disk, CD-ROM,
565 * RAM-drive, or networked drive.
566 *
567 * Parameters:
568 * iDrive UINT containing the zero-based drive index
569 *
570 * Return Value:
571 * UINT One of the following values describing the drive:
572 * DRIVE_FLOPPY, DRIVE_HARD, DRIVE_CDROM, DRIVE_RAMDISK,
573 * DRIVE_NETWORK.
574 *
575 * Copyright (c)1992 Kraig Brockschmidt, All Right Reserved
576 * Compuserve: 70750,2344
577 * Internet : kraigb@microsoft.com
578 *
579 */
580 UINT DriveType(UINT iDrive)
581 {
582 //Validate possible drive indices
583 if((0 > iDrive) || (25 < iDrive))
584 return (UINT)-1;
585
586 static char path[] = "d:\\";
587 path[0] = 'a' + iDrive;
588 int iType = GetDriveType(path);
589
590 /*
591 * Under Windows NT, GetDriveType returns complete information
592 * not provided under Windows 3.x which we now get through other
593 * means.
594 */
595
596 return iType;
597 }
598
599 BOOL PickupDirectory(HWND hWndOwner, LPSTR lpszString)
600 {
601 if(hWndOwner == NULL)
602 hWndOwner = GetDesktopWindow();
603 int ret = DialogBoxParam(hInst, MAKEINTRESOURCE(ID_DIALOG_CHOOSEDIR), hWndOwne r, DirPickDlgProc, (LPARAM)lpszString);
604 return (ret == IDOK);
605 }
OLDNEW
« no previous file with comments | « third_party/npapi/npspy/readme ('k') | third_party/npapi/npspy/windows/gui_advanced.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698