diff options
-rw-r--r-- | base/base_paths_win.cc | 8 | ||||
-rw-r--r-- | base/base_paths_win.h | 5 | ||||
-rw-r--r-- | cloud_print/virtual_driver/win/port_monitor/port_monitor.cc | 11 |
3 files changed, 11 insertions, 13 deletions
diff --git a/base/base_paths_win.cc b/base/base_paths_win.cc index 25271e4..343a101 100644 --- a/base/base_paths_win.cc +++ b/base/base_paths_win.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -55,6 +55,12 @@ bool PathProviderWin(int key, FilePath* result) { return false; cur = FilePath(system_buffer); break; + case base::DIR_PROGRAM_FILESX86: + if (FAILED(SHGetFolderPath(NULL, CSIDL_PROGRAM_FILESX86, NULL, + SHGFP_TYPE_CURRENT, system_buffer))) + return false; + cur = FilePath(system_buffer); + break; case base::DIR_IE_INTERNET_CACHE: if (FAILED(SHGetFolderPath(NULL, CSIDL_INTERNET_CACHE, NULL, SHGFP_TYPE_CURRENT, system_buffer))) diff --git a/base/base_paths_win.h b/base/base_paths_win.h index 9e2db36..02b1f49 100644 --- a/base/base_paths_win.h +++ b/base/base_paths_win.h @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -17,7 +17,8 @@ enum { DIR_WINDOWS, // Windows directory, usually "c:\windows" DIR_SYSTEM, // Usually c:\windows\system32" - DIR_PROGRAM_FILES, // Usually c:\program files + DIR_PROGRAM_FILES, // Usually c:\program files + DIR_PROGRAM_FILESX86, // Usually c:\program files or c:\program files (x86) DIR_IE_INTERNET_CACHE, // Temporary Internet Files directory. DIR_COMMON_START_MENU, // Usually "C:\Documents and Settings\All Users\ diff --git a/cloud_print/virtual_driver/win/port_monitor/port_monitor.cc b/cloud_print/virtual_driver/win/port_monitor/port_monitor.cc index 5141f99..cd54d2a 100644 --- a/cloud_print/virtual_driver/win/port_monitor/port_monitor.cc +++ b/cloud_print/virtual_driver/win/port_monitor/port_monitor.cc @@ -271,16 +271,7 @@ bool GetChromeExePath(FilePath* chrome_path) { // Chrome doesn't appear to be installed per user. // Now check %programfiles(x86)%\google\chrome\application - // TODO(abodenha@chromium.org) Extend PathService::Get to be able to - // return the X86 program files path. At a minimum, use SHGetKnownFolderPath - // instead. - wchar_t system_buffer[MAX_PATH] = L""; - SHGetFolderPath(NULL, - CSIDL_PROGRAM_FILESX86, - NULL, - SHGFP_TYPE_CURRENT, - system_buffer); - path = FilePath(system_buffer); + PathService::Get(base::DIR_PROGRAM_FILESX86, &path); path = path.Append(kChromeExePath); if (file_util::PathExists(path)) { *chrome_path = FilePath(path.value()); |