Port PluginObject fix downstream. See http://trac.webkit.org/changeset/61415/ for...
[chromium-blink-merge.git] / base / resource_util.cc
blob7c7a519257d13a6b49b012b74570a89da9503d6d
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/logging.h"
6 #include "base/resource_util.h"
8 namespace base {
9 bool GetDataResourceFromModule(HMODULE module, int resource_id,
10 void** data, size_t* length) {
11 if (!module)
12 return false;
14 if (!IS_INTRESOURCE(resource_id)) {
15 NOTREACHED();
16 return false;
19 HRSRC hres_info = FindResource(module, MAKEINTRESOURCE(resource_id),
20 L"BINDATA");
21 if (NULL == hres_info)
22 return false;
24 DWORD data_size = SizeofResource(module, hres_info);
25 HGLOBAL hres = LoadResource(module, hres_info);
26 if (!hres)
27 return false;
29 void* resource = LockResource(hres);
30 if (!resource)
31 return false;
33 *data = resource;
34 *length = static_cast<size_t>(data_size);
35 return true;
37 } // namespace