mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
Move wine.cpp into its own library
avoid extra compilations that way
This commit is contained in:
committed by
majcosta
parent
fd6ffd8d69
commit
22e67f66fa
@@ -29,7 +29,6 @@ set(UtilsSrc
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/Text Utils.cpp"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/Timer Control.cpp"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/Utilities.cpp"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/wine.cpp"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/WordWrap.cpp"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/XMLProperties.cpp"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/XMLWriter.cpp"
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
#include <windows.h>
|
||||
#include <stdio.h>
|
||||
#include "wine.h"
|
||||
|
||||
|
||||
BOOL wine_add_dll_overrides()
|
||||
{
|
||||
BOOL dd = wine_add_dll_override(L"ddraw");
|
||||
//BOOL ws = wine_add_dll_override(L"wsock32");
|
||||
|
||||
return dd; // || ws;
|
||||
}
|
||||
|
||||
BOOL wine_add_dll_override(const WCHAR* dll_name)
|
||||
{
|
||||
if (!IS_WINE)
|
||||
return FALSE;
|
||||
|
||||
WCHAR exe_path[MAX_PATH] = { 0 };
|
||||
if (!GetModuleFileNameW(NULL, exe_path, _countof(exe_path) - 1))
|
||||
return FALSE;
|
||||
|
||||
WCHAR exe_file_name[MAX_PATH] = { 0 };
|
||||
WCHAR exe_file_ext[MAX_PATH] = { 0 };
|
||||
_wsplitpath(exe_path, NULL, NULL, exe_file_name, exe_file_ext);
|
||||
|
||||
WCHAR reg_path[512] = { 0 };
|
||||
_snwprintf(
|
||||
reg_path,
|
||||
_countof(reg_path) - 1,
|
||||
L"SOFTWARE\\Wine\\AppDefaults\\%s%s\\DllOverrides",
|
||||
exe_file_name,
|
||||
exe_file_ext);
|
||||
|
||||
BOOL result = FALSE;
|
||||
HKEY hkey;
|
||||
LONG status =
|
||||
RegCreateKeyExW(
|
||||
HKEY_CURRENT_USER,
|
||||
reg_path,
|
||||
0,
|
||||
NULL,
|
||||
REG_OPTION_NON_VOLATILE,
|
||||
KEY_WRITE | KEY_READ,
|
||||
NULL,
|
||||
&hkey,
|
||||
NULL);
|
||||
|
||||
if (status == ERROR_SUCCESS)
|
||||
{
|
||||
if (RegQueryValueExW(hkey, dll_name, NULL, NULL, NULL, NULL) != ERROR_SUCCESS)
|
||||
{
|
||||
WCHAR v[] = L"native, builtin";
|
||||
if (RegSetValueExW(hkey, dll_name, 0, REG_SZ, (LPCBYTE)v, sizeof(v)) == ERROR_SUCCESS &&
|
||||
RegQueryValueExW(hkey, dll_name, NULL, NULL, NULL, NULL) == ERROR_SUCCESS)
|
||||
{
|
||||
result = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
RegCloseKey(hkey);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
#ifndef WINE_H
|
||||
#define WINE_H
|
||||
|
||||
#define IS_WINE (GetProcAddress(GetModuleHandleA("ntdll.dll"), "wine_get_version") != 0)
|
||||
|
||||
// ### types ###
|
||||
|
||||
// ### Variables ###
|
||||
|
||||
// ### Functions ###
|
||||
|
||||
BOOL wine_add_dll_overrides();
|
||||
BOOL wine_add_dll_override(const WCHAR* dll_name);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user