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

Side by Side Diff: ui/base/win/shell.cc

Issue 2870263002: Rename ScopedComPtr::Receive to ScopedComPtr::GetAddressOf (Closed)
Patch Set: Rebase to 2a6f440 Created 3 years, 7 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 | « ui/base/dragdrop/os_exchange_data_win_unittest.cc ('k') | ui/gfx/font_fallback_win.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/base/win/shell.h" 5 #include "ui/base/win/shell.h"
6 6
7 #include <dwmapi.h> 7 #include <dwmapi.h>
8 #include <shlobj.h> // Must be before propkey. 8 #include <shlobj.h> // Must be before propkey.
9 #include <propkey.h> 9 #include <propkey.h>
10 #include <shellapi.h> 10 #include <shellapi.h>
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 } 97 }
98 98
99 bool PreventWindowFromPinning(HWND hwnd) { 99 bool PreventWindowFromPinning(HWND hwnd) {
100 DCHECK(hwnd); 100 DCHECK(hwnd);
101 101
102 // This functionality is only available on Win7+. 102 // This functionality is only available on Win7+.
103 if (base::win::GetVersion() < base::win::VERSION_WIN7) 103 if (base::win::GetVersion() < base::win::VERSION_WIN7)
104 return false; 104 return false;
105 105
106 base::win::ScopedComPtr<IPropertyStore> pps; 106 base::win::ScopedComPtr<IPropertyStore> pps;
107 if (FAILED(SHGetPropertyStoreForWindow(hwnd, 107 if (FAILED(
108 IID_PPV_ARGS(pps.Receive())))) 108 SHGetPropertyStoreForWindow(hwnd, IID_PPV_ARGS(pps.GetAddressOf()))))
109 return false; 109 return false;
110 110
111 return base::win::SetBooleanValueForPropertyStore( 111 return base::win::SetBooleanValueForPropertyStore(
112 pps.Get(), PKEY_AppUserModel_PreventPinning, true); 112 pps.Get(), PKEY_AppUserModel_PreventPinning, true);
113 } 113 }
114 114
115 // TODO(calamity): investigate moving this out of the UI thread as COM 115 // TODO(calamity): investigate moving this out of the UI thread as COM
116 // operations may spawn nested run loops which can cause issues. 116 // operations may spawn nested run loops which can cause issues.
117 void SetAppDetailsForWindow(const base::string16& app_id, 117 void SetAppDetailsForWindow(const base::string16& app_id,
118 const base::FilePath& app_icon_path, 118 const base::FilePath& app_icon_path,
119 int app_icon_index, 119 int app_icon_index,
120 const base::string16& relaunch_command, 120 const base::string16& relaunch_command,
121 const base::string16& relaunch_display_name, 121 const base::string16& relaunch_display_name,
122 HWND hwnd) { 122 HWND hwnd) {
123 DCHECK(hwnd); 123 DCHECK(hwnd);
124 124
125 // This functionality is only available on Win7+. 125 // This functionality is only available on Win7+.
126 if (base::win::GetVersion() < base::win::VERSION_WIN7) 126 if (base::win::GetVersion() < base::win::VERSION_WIN7)
127 return; 127 return;
128 128
129 base::win::ScopedComPtr<IPropertyStore> pps; 129 base::win::ScopedComPtr<IPropertyStore> pps;
130 if (FAILED(SHGetPropertyStoreForWindow(hwnd, 130 if (FAILED(
131 IID_PPV_ARGS(pps.Receive())))) 131 SHGetPropertyStoreForWindow(hwnd, IID_PPV_ARGS(pps.GetAddressOf()))))
132 return; 132 return;
133 133
134 if (!app_id.empty()) 134 if (!app_id.empty())
135 base::win::SetAppIdForPropertyStore(pps.Get(), app_id.c_str()); 135 base::win::SetAppIdForPropertyStore(pps.Get(), app_id.c_str());
136 if (!app_icon_path.empty()) { 136 if (!app_icon_path.empty()) {
137 // Always add the icon index explicitly to prevent bad interaction with the 137 // Always add the icon index explicitly to prevent bad interaction with the
138 // index notation when file path has commas. 138 // index notation when file path has commas.
139 base::win::SetStringValueForPropertyStore( 139 base::win::SetStringValueForPropertyStore(
140 pps.Get(), PKEY_AppUserModel_RelaunchIconResource, 140 pps.Get(), PKEY_AppUserModel_RelaunchIconResource,
141 base::StringPrintf(L"%ls,%d", app_icon_path.value().c_str(), 141 base::StringPrintf(L"%ls,%d", app_icon_path.value().c_str(),
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 } 174 }
175 175
176 void ClearWindowPropertyStore(HWND hwnd) { 176 void ClearWindowPropertyStore(HWND hwnd) {
177 DCHECK(hwnd); 177 DCHECK(hwnd);
178 178
179 // This functionality is only available on Win7+. 179 // This functionality is only available on Win7+.
180 if (base::win::GetVersion() < base::win::VERSION_WIN7) 180 if (base::win::GetVersion() < base::win::VERSION_WIN7)
181 return; 181 return;
182 182
183 base::win::ScopedComPtr<IPropertyStore> pps; 183 base::win::ScopedComPtr<IPropertyStore> pps;
184 if (FAILED(SHGetPropertyStoreForWindow(hwnd, 184 if (FAILED(
185 IID_PPV_ARGS(pps.Receive())))) 185 SHGetPropertyStoreForWindow(hwnd, IID_PPV_ARGS(pps.GetAddressOf()))))
186 return; 186 return;
187 187
188 DWORD property_count; 188 DWORD property_count;
189 if (FAILED(pps->GetCount(&property_count))) 189 if (FAILED(pps->GetCount(&property_count)))
190 return; 190 return;
191 191
192 PROPVARIANT empty_property_variant = {}; 192 PROPVARIANT empty_property_variant = {};
193 for (DWORD i = 0; i < property_count; i++) { 193 for (DWORD i = 0; i < property_count; i++) {
194 PROPERTYKEY key; 194 PROPERTYKEY key;
195 if (SUCCEEDED(pps->GetAt(i, &key))) 195 if (SUCCEEDED(pps->GetAt(i, &key)))
(...skipping 16 matching lines...) Expand all
212 // at the same feature level. See bug 426573. 212 // at the same feature level. See bug 426573.
213 if (base::win::GetVersion() < base::win::VERSION_WIN7) 213 if (base::win::GetVersion() < base::win::VERSION_WIN7)
214 return false; 214 return false;
215 // If composition is not enabled, we behave like on XP. 215 // If composition is not enabled, we behave like on XP.
216 BOOL enabled = FALSE; 216 BOOL enabled = FALSE;
217 return SUCCEEDED(DwmIsCompositionEnabled(&enabled)) && enabled; 217 return SUCCEEDED(DwmIsCompositionEnabled(&enabled)) && enabled;
218 } 218 }
219 219
220 } // namespace win 220 } // namespace win
221 } // namespace ui 221 } // namespace ui
OLDNEW
« no previous file with comments | « ui/base/dragdrop/os_exchange_data_win_unittest.cc ('k') | ui/gfx/font_fallback_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698