• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #include "base/logging.h"
6 #include "base/resource_util.h"
7 
8 namespace base {
GetDataResourceFromModule(HMODULE module,int resource_id,void ** data,size_t * length)9 bool GetDataResourceFromModule(HMODULE module, int resource_id,
10                                void** data, size_t* length) {
11   if (!module)
12     return false;
13 
14   if (!IS_INTRESOURCE(resource_id)) {
15     NOTREACHED();
16     return false;
17   }
18 
19   HRSRC hres_info = FindResource(module, MAKEINTRESOURCE(resource_id),
20                                  L"BINDATA");
21   if (NULL == hres_info)
22     return false;
23 
24   DWORD data_size = SizeofResource(module, hres_info);
25   HGLOBAL hres = LoadResource(module, hres_info);
26   if (!hres)
27     return false;
28 
29   void* resource = LockResource(hres);
30   if (!resource)
31     return false;
32 
33   *data = resource;
34   *length = static_cast<size_t>(data_size);
35   return true;
36 }
37 }  // namespace
38