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

Side by Side Diff: chrome/utility/importer/ie_importer_win.cc

Issue 2885063003: Remove ScopedComPtr::QueryFrom() (Closed)
Patch Set: 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
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 "chrome/utility/importer/ie_importer_win.h" 5 #include "chrome/utility/importer/ie_importer_win.h"
6 6
7 #include <objbase.h>
7 #include <ole2.h> 8 #include <ole2.h>
8 #include <intshcut.h> 9 #include <intshcut.h>
9 #include <shlobj.h> 10 #include <shlobj.h>
10 #include <stddef.h> 11 #include <stddef.h>
11 #include <urlhist.h> 12 #include <urlhist.h>
12 #include <wininet.h> 13 #include <wininet.h>
13 14
14 #include <algorithm> 15 #include <algorithm>
15 #include <map> 16 #include <map>
16 #include <string> 17 #include <string>
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 // representing it. 290 // representing it.
290 bool LoadInternetShortcut( 291 bool LoadInternetShortcut(
291 const base::string16& file, 292 const base::string16& file,
292 base::win::ScopedComPtr<IUniformResourceLocator>* shortcut) { 293 base::win::ScopedComPtr<IUniformResourceLocator>* shortcut) {
293 base::win::ScopedComPtr<IUniformResourceLocator> url_locator; 294 base::win::ScopedComPtr<IUniformResourceLocator> url_locator;
294 if (FAILED(url_locator.CreateInstance(CLSID_InternetShortcut, NULL, 295 if (FAILED(url_locator.CreateInstance(CLSID_InternetShortcut, NULL,
295 CLSCTX_INPROC_SERVER))) 296 CLSCTX_INPROC_SERVER)))
296 return false; 297 return false;
297 298
298 base::win::ScopedComPtr<IPersistFile> persist_file; 299 base::win::ScopedComPtr<IPersistFile> persist_file;
299 if (FAILED(persist_file.QueryFrom(url_locator.Get()))) 300 if (FAILED(url_locator.CopyTo(persist_file.GetAddressOf())))
300 return false; 301 return false;
301 302
302 // Loads the Internet Shortcut from persistent storage. 303 // Loads the Internet Shortcut from persistent storage.
303 if (FAILED(persist_file->Load(file.c_str(), STGM_READ))) 304 if (FAILED(persist_file->Load(file.c_str(), STGM_READ)))
304 return false; 305 return false;
305 306
306 std::swap(url_locator, *shortcut); 307 std::swap(url_locator, *shortcut);
307 return true; 308 return true;
308 } 309 }
309 310
310 // Reads the URL stored in the internet shortcut. 311 // Reads the URL stored in the internet shortcut.
311 GURL ReadURLFromInternetShortcut(IUniformResourceLocator* url_locator) { 312 GURL ReadURLFromInternetShortcut(IUniformResourceLocator* url_locator) {
312 base::win::ScopedCoMem<wchar_t> url; 313 base::win::ScopedCoMem<wchar_t> url;
313 // GetURL can return S_FALSE (FAILED(S_FALSE) is false) when url == NULL. 314 // GetURL can return S_FALSE (FAILED(S_FALSE) is false) when url == NULL.
314 return (FAILED(url_locator->GetURL(&url)) || !url) ? 315 return (FAILED(url_locator->GetURL(&url)) || !url) ?
315 GURL() : GURL(url.get()); 316 GURL() : GURL(url.get());
316 } 317 }
317 318
318 // Reads the URL of the favicon of the internet shortcut. 319 // Reads the URL of the favicon of the internet shortcut.
319 GURL ReadFaviconURLFromInternetShortcut(IUniformResourceLocator* url_locator) { 320 GURL ReadFaviconURLFromInternetShortcut(IUniformResourceLocator* url_locator) {
320 base::win::ScopedComPtr<IPropertySetStorage> property_set_storage; 321 base::win::ScopedComPtr<IPropertySetStorage> property_set_storage;
321 if (FAILED(property_set_storage.QueryFrom(url_locator))) 322 if (FAILED(url_locator->QueryInterface(IID_PPV_ARGS(&property_set_storage))))
322 return GURL(); 323 return GURL();
323 324
324 base::win::ScopedComPtr<IPropertyStorage> property_storage; 325 base::win::ScopedComPtr<IPropertyStorage> property_storage;
325 if (FAILED(property_set_storage->Open(FMTID_Intshcut, STGM_READ, 326 if (FAILED(property_set_storage->Open(FMTID_Intshcut, STGM_READ,
326 property_storage.GetAddressOf()))) { 327 property_storage.GetAddressOf()))) {
327 return GURL(); 328 return GURL();
328 } 329 }
329 330
330 PROPSPEC properties[] = {{PRSPEC_PROPID, {PID_IS_ICONFILE}}}; 331 PROPSPEC properties[] = {{PRSPEC_PROPID, {PID_IS_ICONFILE}}};
331 // ReadMultiple takes a non-const array of PROPVARIANTs, but since this code 332 // ReadMultiple takes a non-const array of PROPVARIANTs, but since this code
(...skipping 579 matching lines...) Expand 10 before | Expand all | Expand 10 after
911 static int version = -1; 912 static int version = -1;
912 if (version < 0) { 913 if (version < 0) {
913 wchar_t buffer[128]; 914 wchar_t buffer[128];
914 DWORD buffer_length = sizeof(buffer); 915 DWORD buffer_length = sizeof(buffer);
915 base::win::RegKey reg_key(HKEY_LOCAL_MACHINE, kIEVersionKey, KEY_READ); 916 base::win::RegKey reg_key(HKEY_LOCAL_MACHINE, kIEVersionKey, KEY_READ);
916 LONG result = reg_key.ReadValue(L"Version", buffer, &buffer_length, NULL); 917 LONG result = reg_key.ReadValue(L"Version", buffer, &buffer_length, NULL);
917 version = ((result == ERROR_SUCCESS)? _wtoi(buffer) : 0); 918 version = ((result == ERROR_SUCCESS)? _wtoi(buffer) : 0);
918 } 919 }
919 return version; 920 return version;
920 } 921 }
OLDNEW
« no previous file with comments | « chrome/installer/util/advanced_firewall_manager_win.cc ('k') | media/capture/video/win/video_capture_device_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698