Crate windows[][src]

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

Macros

build

A macro for generating WinRT modules to a .rs file at build time.

include_bindings

Includes the generated bindings into the current context.

Structs

Array

A WinRT array stores elements contiguously in a heap-allocated buffer.

Error

A WinRT error object consists of both an error code as well as detailed error information for debugging.

FactoryCache

Attempts to load and cache the factory interface for the given WinRT class. This is automatically

Guid

A globally unique identifier (GUID) used to identify COM and WinRT interfaces.

HRESULT

A primitive error code value returned by most COM functions.

HString

A WinRT string, sometimes called an HSTRING, is reference-counted and logically immutable. It should only be used for communicating with WinRT APIs.

IActivationFactory

WinRT classes have a supporting factory object that implements IActivationFactory to create a new instance of the WinRT class with some default state. IActivationFactory represents the IActivationFactory interface.

IAgileObject
IUnknown

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.

Object

A WinRT object that may be used as a polymorphic stand-in for any WinRT class, interface, or boxed value. Object implements the IInspectable interface.

RefCount

A thread-safe reference count for use with COM implementations.

Waiter

A simple blocking waiter used by the generated bindings and should not be used directly.

Weak

Weak holds a non-owning reference to an object.

Traits

Abi

Provides a generic way of referring to and converting between a Rust object and its ABI equivalent.

Interface

Provides low-level access to a COM interface.

IntoParam
RuntimeName

A WinRT type that can be identified by a name in order to support activation and marshaling.

RuntimeType

RuntimeType is used to constrain WinRT generic types to WinRT types.

Functions

create_instance

Creates a COM object with the given CLSID.

factory

Attempts to load the factory interface for the given WinRT class.

initialize_mta

Initializes COM for use by the calling thread for the multi-threaded apartment (MTA).

initialize_sta

Initializes COM for use by the calling thread for a single-threaded apartment (STA).

Type Definitions

Result

A Result type that provides Windows error information.

Attribute Macros

implement

Rust structs can use the implement macro to implement entire WinRT classes or any combination of existing COM and WinRT interfaces.