use super::{arg_dword, HostState, Registry, StubFn, Win32Error};
use crate::emulator::{Cpu, Mmu};
pub fn register(registry: &mut Registry) {
registry.register(
"version.dll",
"GetFileVersionInfoSizeA",
stub_get_file_version_info_size_a as StubFn,
2,
);
registry.register(
"version.dll",
"GetFileVersionInfoA",
stub_get_file_version_info_a as StubFn,
4,
);
registry.register(
"version.dll",
"VerQueryValueA",
stub_ver_query_value_a as StubFn,
4,
);
}
fn stub_get_file_version_info_size_a(
cpu: &mut Cpu,
mmu: &mut Mmu,
_state: &mut HostState,
_registry: &Registry,
) -> Result<u32, Win32Error> {
let _filename = arg_dword(cpu, mmu, 0)
.map_err(|t| crate::win32::trap_to_win32_local("GetFileVersionInfoSizeA", t))?;
let handle = arg_dword(cpu, mmu, 1)
.map_err(|t| crate::win32::trap_to_win32_local("GetFileVersionInfoSizeA", t))?;
if handle != 0 {
mmu.store32(handle, 0)
.map_err(|t| crate::win32::trap_to_win32_local("GetFileVersionInfoSizeA", t))?;
}
Ok(0)
}
fn stub_get_file_version_info_a(
_cpu: &mut Cpu,
_mmu: &mut Mmu,
_state: &mut HostState,
_registry: &Registry,
) -> Result<u32, Win32Error> {
Ok(0)
}
fn stub_ver_query_value_a(
_cpu: &mut Cpu,
_mmu: &mut Mmu,
_state: &mut HostState,
_registry: &Registry,
) -> Result<u32, Win32Error> {
Ok(0)
}