Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3497)

Unified Diff: base/file_version_info_win.cc

Issue 1446363003: Deleted OS_WIN and all Windows specific files from base. (Closed) Base URL: https://github.com/domokit/mojo.git@base_tests
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/file_version_info_win.h ('k') | base/files/file.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/file_version_info_win.cc
diff --git a/base/file_version_info_win.cc b/base/file_version_info_win.cc
deleted file mode 100644
index ca3e4b1fa3af6ac0d8511be8dac44675ad260c2a..0000000000000000000000000000000000000000
--- a/base/file_version_info_win.cc
+++ /dev/null
@@ -1,190 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/file_version_info_win.h"
-
-#include <windows.h>
-
-#include "base/file_version_info.h"
-#include "base/files/file_path.h"
-#include "base/logging.h"
-#include "base/threading/thread_restrictions.h"
-
-using base::FilePath;
-
-FileVersionInfoWin::FileVersionInfoWin(void* data,
- WORD language,
- WORD code_page)
- : language_(language), code_page_(code_page) {
- base::ThreadRestrictions::AssertIOAllowed();
- data_.reset((char*) data);
- fixed_file_info_ = NULL;
- UINT size;
- ::VerQueryValue(data_.get(), L"\\", (LPVOID*)&fixed_file_info_, &size);
-}
-
-FileVersionInfoWin::~FileVersionInfoWin() {
- DCHECK(data_.get());
-}
-
-typedef struct {
- WORD language;
- WORD code_page;
-} LanguageAndCodePage;
-
-// static
-FileVersionInfo* FileVersionInfo::CreateFileVersionInfoForModule(
- HMODULE module) {
- // Note that the use of MAX_PATH is basically in line with what we do for
- // all registered paths (PathProviderWin).
- wchar_t system_buffer[MAX_PATH];
- system_buffer[0] = 0;
- if (!GetModuleFileName(module, system_buffer, MAX_PATH))
- return NULL;
-
- FilePath app_path(system_buffer);
- return CreateFileVersionInfo(app_path);
-}
-
-// static
-FileVersionInfo* FileVersionInfo::CreateFileVersionInfo(
- const FilePath& file_path) {
- base::ThreadRestrictions::AssertIOAllowed();
-
- DWORD dummy;
- const wchar_t* path = file_path.value().c_str();
- DWORD length = ::GetFileVersionInfoSize(path, &dummy);
- if (length == 0)
- return NULL;
-
- void* data = calloc(length, 1);
- if (!data)
- return NULL;
-
- if (!::GetFileVersionInfo(path, dummy, length, data)) {
- free(data);
- return NULL;
- }
-
- LanguageAndCodePage* translate = NULL;
- uint32 page_count;
- BOOL query_result = VerQueryValue(data, L"\\VarFileInfo\\Translation",
- (void**) &translate, &page_count);
-
- if (query_result && translate) {
- return new FileVersionInfoWin(data, translate->language,
- translate->code_page);
-
- } else {
- free(data);
- return NULL;
- }
-}
-
-base::string16 FileVersionInfoWin::company_name() {
- return GetStringValue(L"CompanyName");
-}
-
-base::string16 FileVersionInfoWin::company_short_name() {
- return GetStringValue(L"CompanyShortName");
-}
-
-base::string16 FileVersionInfoWin::internal_name() {
- return GetStringValue(L"InternalName");
-}
-
-base::string16 FileVersionInfoWin::product_name() {
- return GetStringValue(L"ProductName");
-}
-
-base::string16 FileVersionInfoWin::product_short_name() {
- return GetStringValue(L"ProductShortName");
-}
-
-base::string16 FileVersionInfoWin::comments() {
- return GetStringValue(L"Comments");
-}
-
-base::string16 FileVersionInfoWin::legal_copyright() {
- return GetStringValue(L"LegalCopyright");
-}
-
-base::string16 FileVersionInfoWin::product_version() {
- return GetStringValue(L"ProductVersion");
-}
-
-base::string16 FileVersionInfoWin::file_description() {
- return GetStringValue(L"FileDescription");
-}
-
-base::string16 FileVersionInfoWin::legal_trademarks() {
- return GetStringValue(L"LegalTrademarks");
-}
-
-base::string16 FileVersionInfoWin::private_build() {
- return GetStringValue(L"PrivateBuild");
-}
-
-base::string16 FileVersionInfoWin::file_version() {
- return GetStringValue(L"FileVersion");
-}
-
-base::string16 FileVersionInfoWin::original_filename() {
- return GetStringValue(L"OriginalFilename");
-}
-
-base::string16 FileVersionInfoWin::special_build() {
- return GetStringValue(L"SpecialBuild");
-}
-
-base::string16 FileVersionInfoWin::last_change() {
- return GetStringValue(L"LastChange");
-}
-
-bool FileVersionInfoWin::is_official_build() {
- return (GetStringValue(L"Official Build").compare(L"1") == 0);
-}
-
-bool FileVersionInfoWin::GetValue(const wchar_t* name,
- std::wstring* value_str) {
- WORD lang_codepage[8];
- int i = 0;
- // Use the language and codepage from the DLL.
- lang_codepage[i++] = language_;
- lang_codepage[i++] = code_page_;
- // Use the default language and codepage from the DLL.
- lang_codepage[i++] = ::GetUserDefaultLangID();
- lang_codepage[i++] = code_page_;
- // Use the language from the DLL and Latin codepage (most common).
- lang_codepage[i++] = language_;
- lang_codepage[i++] = 1252;
- // Use the default language and Latin codepage (most common).
- lang_codepage[i++] = ::GetUserDefaultLangID();
- lang_codepage[i++] = 1252;
-
- i = 0;
- while (i < arraysize(lang_codepage)) {
- wchar_t sub_block[MAX_PATH];
- WORD language = lang_codepage[i++];
- WORD code_page = lang_codepage[i++];
- _snwprintf_s(sub_block, MAX_PATH, MAX_PATH,
- L"\\StringFileInfo\\%04x%04x\\%ls", language, code_page, name);
- LPVOID value = NULL;
- uint32 size;
- BOOL r = ::VerQueryValue(data_.get(), sub_block, &value, &size);
- if (r && value) {
- value_str->assign(static_cast<wchar_t*>(value));
- return true;
- }
- }
- return false;
-}
-
-std::wstring FileVersionInfoWin::GetStringValue(const wchar_t* name) {
- std::wstring str;
- if (GetValue(name, &str))
- return str;
- else
- return L"";
-}
« no previous file with comments | « base/file_version_info_win.h ('k') | base/files/file.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698