win-capture: Use GetSytemDirectory instead of SH*
Instead of using shell functions to get the windows system directory, use the kernel32 functions (GetSystemDirectory and GetSystemWow64Directory). Reduces a bit of unnecessary overhead.
This commit is contained in:
parent
a468777614
commit
b4597218f0
@ -1,6 +1,5 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#include <windows.h>
|
||||
#include <shlobj.h>
|
||||
#include <psapi.h>
|
||||
#include "graphics-hook.h"
|
||||
#include "../obfuscate.h"
|
||||
@ -139,10 +138,9 @@ static inline bool init_mutexes(void)
|
||||
|
||||
static inline bool init_system_path(void)
|
||||
{
|
||||
HRESULT hr = SHGetFolderPathA(NULL, CSIDL_SYSTEM, NULL,
|
||||
SHGFP_TYPE_CURRENT, system_path);
|
||||
if (hr != S_OK) {
|
||||
hlog("Failed to get windows system path: %08lX", hr);
|
||||
UINT ret = GetSystemDirectoryA(system_path, MAX_PATH);
|
||||
if (!ret) {
|
||||
hlog("Failed to get windows system path: %lu", GetLastError());
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -7,7 +7,6 @@
|
||||
#include <util/pipe.h>
|
||||
|
||||
#include <windows.h>
|
||||
#include <shlobj.h>
|
||||
#include "graphics-hook-info.h"
|
||||
|
||||
extern struct graphics_offsets offsets32;
|
||||
@ -98,12 +97,16 @@ static bool get_32bit_system_dll_ver(const wchar_t *system_lib,
|
||||
struct win_version_info *ver)
|
||||
{
|
||||
wchar_t path[MAX_PATH];
|
||||
UINT ret;
|
||||
|
||||
HRESULT hr = SHGetFolderPathW(NULL, CSIDL_SYSTEMX86, NULL,
|
||||
SHGFP_TYPE_CURRENT, path);
|
||||
if (hr != S_OK) {
|
||||
#ifdef _WIN64
|
||||
ret = GetSystemWow64DirectoryW(path, MAX_PATH);
|
||||
#else
|
||||
ret = GetSystemDirectoryW(path, MAX_PATH);
|
||||
#endif
|
||||
if (!ret) {
|
||||
blog(LOG_ERROR, "Failed to get windows 32bit system path: "
|
||||
"%08lX", hr);
|
||||
"%lu", GetLastError());
|
||||
return false;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user