crates/libs/pal/src/lib.rs (19 lines of code) (raw):
// ------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License (MIT). See License.txt in the repo root for license information.
// ------------------------------------------------------------
//! mssf-pal acts like the windows_core (and windows) crate for the windows-bindgen code to compile on linux.
//! It reexposes windows_core com supports, and some Win32 error codes.
//! windows_core does not support string types on linux, so we provide an minimal implementation here.
//!
//! To use mssf-pal for windows-bindgen generated code, alias mssf-pal crate as the windows-core and windows crate,
//! so that the generated code can resolve windows_core crate content via mssf-pal.
// expose minimal windows_core types except string types for mssf to work on linux.
pub mod imp {
pub use windows_core::imp::*;
}
pub use windows_core::{
implement, AsImpl, ComObject, ComObjectInner, ComObjectInterface, CopyType, Error,
IInspectable, IInspectable_Vtbl, IUnknown, IUnknownImpl, IUnknown_Vtbl, Interface,
InterfaceRef, OutParam, OutRef, Param, ParamValue, Ref, Result, RuntimeName, RuntimeType,
StaticComObject, Type, TypeKind, BOOL, DYNAMIC_CAST_IID, GUID, HRESULT,
};
// provide other implemenations missing for linux
// extern crate self as windows_core;
// This is used on windows as well.
mod strings;
pub use strings::*;
// pal definition for windows types
#[allow(
non_snake_case,
non_upper_case_globals,
non_camel_case_types,
dead_code,
clippy::all
)]
/// Provides windows crate Win32 mod contents needed to build windows-bindgen
/// generated code on linux, and some minimal common windows definitions.
pub mod Win32;