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 { 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