1// Copyright (c) 2011 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// This file contains utility functions for accessing resources in external
6// files (DLLs) or embedded in the executable itself.
7
8#ifndef BASE_WIN_RESOURCE_UTIL_H__
9#define BASE_WIN_RESOURCE_UTIL_H__
10
11#include <windows.h>
12
13#include "base/base_export.h"
14#include "base/basictypes.h"
15
16namespace base {
17namespace win {
18
19// Function for getting a data resource of the specified |resource_type| from
20// a dll.  Some resources are optional, especially in unit tests, so this
21// returns false but doesn't raise an error if the resource can't be loaded.
22bool BASE_EXPORT GetResourceFromModule(HMODULE module,
23                                       int resource_id,
24                                       LPCTSTR resource_type,
25                                       void** data,
26                                       size_t* length);
27
28// Function for getting a data resource (BINDATA) from a dll.  Some
29// resources are optional, especially in unit tests, so this returns false
30// but doesn't raise an error if the resource can't be loaded.
31bool BASE_EXPORT GetDataResourceFromModule(HMODULE module,
32                                           int resource_id,
33                                           void** data,
34                                           size_t* length);
35
36}  // namespace win
37}  // namespace base
38
39#endif  // BASE_WIN_RESOURCE_UTIL_H__
40