Index: chrome/browser/history/history_publisher_win.cc |
=================================================================== |
--- chrome/browser/history/history_publisher_win.cc (revision 158860) |
+++ chrome/browser/history/history_publisher_win.cc (working copy) |
@@ -20,36 +20,22 @@ |
namespace { |
-// Instantiates a IChromeHistoryIndexer COM object. Takes a COM class id |
-// in |name| and returns the object in |indexer|. Returns false if the |
-// operation fails. |
-bool CoCreateIndexerFromName(const wchar_t* name, |
- IChromeHistoryIndexer** indexer) { |
- CLSID clsid; |
- HRESULT hr = CLSIDFromString(const_cast<wchar_t*>(name), &clsid); |
- if (FAILED(hr)) |
- return false; |
- hr = CoCreateInstance(clsid, NULL, CLSCTX_INPROC, |
- __uuidof(IChromeHistoryIndexer), |
- reinterpret_cast<void**>(indexer)); |
- if (FAILED(hr)) |
- return false; |
- return true; |
-} |
- |
// Instantiates the registered indexers from the registry |root| + |path| key |
// and adds them to the |indexers| list. |
-void AddRegisteredIndexers(HKEY root, const wchar_t* path, |
+void AddRegisteredIndexers( |
+ HKEY root, |
+ const wchar_t* path, |
std::vector< base::win::ScopedComPtr<IChromeHistoryIndexer> >* indexers) { |
- IChromeHistoryIndexer* indexer; |
- base::win::RegistryKeyIterator r_iter(root, path); |
- while (r_iter.Valid()) { |
- if (CoCreateIndexerFromName(r_iter.Name(), &indexer)) { |
- indexers->push_back( |
- base::win::ScopedComPtr<IChromeHistoryIndexer>(indexer)); |
- indexer->Release(); |
+ for (base::win::RegistryKeyIterator r_iter(root, path); r_iter.Valid(); |
+ ++r_iter) { |
+ CLSID clsid; |
+ if (FAILED(CLSIDFromString(const_cast<wchar_t*>(r_iter.Name()), &clsid))) |
+ continue; |
+ base::win::ScopedComPtr<IChromeHistoryIndexer> indexer; |
+ if (SUCCEEDED(indexer.CreateInstance(clsid, NULL, CLSCTX_INPROC))) { |
+ indexers->push_back(indexer); |
+ indexer.Release(); |
} |
- ++r_iter; |
} |
} |