The Rust language projection follows in the tradition established by C++/WinRT
of building language projections for Windows using standard languages and compilers, providing a natural and idiomatic
way for Rust developers to call Windows APIs. The
windows crate lets you call any Windows API past, present, and
future using code generated on the fly directly from the metadata describing the API and right into your Rust package
where you can call them as if they were just another Rust module.
Learn more here: https://github.com/microsoft/windows-rs
A macro for generating WinRT modules to a .rs file at build time.
Includes the generating bindings into the current context.
A WinRT array stores elements contiguously in a heap-allocated buffer.
A WinRT error object consists of both an error code as well as detailed error information for debugging.
A primitive error code value returned by most COM functions. An
Attempts to load and cache the factory interface for the given WinRT class. This is automatically
A globally unique identifier (GUID) used to identify COM and WinRT interfaces.
A WinRT string, sometimes called an HSTRING, is reference-counted and logically immutable. It should only be used for communicating with WinRT APIs.
WinRT classes have a supporting factory object that implements
A marker interface indicating that an object is free-threaded and may be called from any apartment.
All COM interfaces (and thus WinRT classes and interfaces) implement IUnknown under the hood to provide reference-counted lifetime management as well as the ability to query for additional interfaces that the object may implement.
A WinRT object that may be used as a polymorphic stand-in for any WinRT class, interface, or boxed value.
A thread-safe reference count for use with COM implementations.
A simple blocking waiter used by the generated bindings and should not be used directly.
Provides a generic way of referring to and converting between a Rust object and its ABI equivalent.
Provides low-level access to a COM interface.
A WinRT type that can be identified by a name in order to support activation and marshaling.
RuntimeType is used to constrain WinRT generic types to WinRT types.
Creates a COM object with the given CLSID.
Attempts to load the factory interface for the given WinRT class.
Initializes COM for use by the calling thread for the multi-threaded apartment (MTA).
Initializes COM for use by the calling thread for a single-threaded apartment (STA).
Rust structs can use the