- add sources.
[platform/framework/web/crosswalk.git] / src / base / win / resource_util.cc
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/win/resource_util.h"
7
8 namespace base {
9 namespace win {
10
11 bool GetResourceFromModule(HMODULE module,
12                            int resource_id,
13                            LPCTSTR resource_type,
14                            void** data,
15                            size_t* length) {
16   if (!module)
17     return false;
18
19   if (!IS_INTRESOURCE(resource_id)) {
20     NOTREACHED();
21     return false;
22   }
23
24   HRSRC hres_info = FindResource(module, MAKEINTRESOURCE(resource_id),
25                                  resource_type);
26   if (NULL == hres_info)
27     return false;
28
29   DWORD data_size = SizeofResource(module, hres_info);
30   HGLOBAL hres = LoadResource(module, hres_info);
31   if (!hres)
32     return false;
33
34   void* resource = LockResource(hres);
35   if (!resource)
36     return false;
37
38   *data = resource;
39   *length = static_cast<size_t>(data_size);
40   return true;
41 }
42
43 bool GetDataResourceFromModule(HMODULE module,
44                                int resource_id,
45                                void** data,
46                                size_t* length) {
47   return GetResourceFromModule(module, resource_id, L"BINDATA", data, length);
48 }
49
50 }  // namespace win
51 }  // namespace base