Skip to content

Commit

Permalink
GetFabricClientDefaultSettings
Browse files Browse the repository at this point in the history
  • Loading branch information
cgettys-microsoft committed Mar 7, 2025
1 parent 0e30cbb commit d4a4a3e
Showing 1 changed file with 19 additions and 1 deletion.
20 changes: 19 additions & 1 deletion crates/libs/core/src/api/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@
//!
use mssf_com::{
FabricClient::{IFabricClientConnectionEventHandler, IFabricServiceNotificationEventHandler},
FabricClient::{
IFabricClientConnectionEventHandler, IFabricClientSettingsResult,
IFabricServiceNotificationEventHandler,
},
FabricCommon::{
IFabricAsyncOperationCallback, IFabricAsyncOperationContext, IFabricStringResult,
},
Expand Down Expand Up @@ -85,6 +88,11 @@ pub struct ApiTable {
) -> crate::HRESULT,
>,

get_fabric_client_default_settings_fn: libloading::Symbol<
'static,
unsafe extern "system" fn(result: *mut *mut IFabricClientSettingsResult) -> crate::HRESULT,
>,

fabric_create_runtime_fn: libloading::Symbol<
'static,
unsafe extern "system" fn(
Expand Down Expand Up @@ -153,6 +161,10 @@ impl ApiTable {
&lib_table.fabric_client,
"FabricCreateLocalClient4",
),
get_fabric_client_default_settings_fn: load_fn(
&lib_table.fabric_client,
"GetFabricClientDefaultSettings",
),
fabric_create_runtime_fn: load_fn(&lib_table.fabric_runtime, "FabricCreateRuntime"),
fabric_get_activation_context_fn: load_fn(
&lib_table.fabric_runtime,
Expand Down Expand Up @@ -240,6 +252,12 @@ impl ApiTable {
Ok(unsafe { T::from_raw(result) })
}

pub fn get_fabric_client_default_settings_fn(&self) -> crate::WinResult<IFabricClientSettingsResult> {
let mut result = std::ptr::null_mut::<IFabricClientSettingsResult>();
unsafe { (self.get_fabric_client_default_settings_fn)(std::ptr::addr_of_mut!(result)) }.ok()?;
Ok(unsafe { IFabricClientSettingsResult::from_raw(result as *mut core::ffi::c_void) })
}

pub fn fabric_create_runtime<T: Interface>(&self) -> crate::WinResult<T> {
let mut result = std::ptr::null_mut::<core::ffi::c_void>();
unsafe { (self.fabric_create_runtime_fn)(&T::IID, std::ptr::addr_of_mut!(result)) }.ok()?;
Expand Down

0 comments on commit d4a4a3e

Please sign in to comment.