[−][src]Crate com
A helper crate for consuming and producing COM interfaces.
Example
To work with a COM interface it must first be declared:
/// Define an IAnimal interface com::interfaces! { #[uuid("EFF8970E-C50F-45E0-9284-291CE5A6F771")] pub unsafe interface IAnimal: com::interfaces::IUnknown { unsafe fn Eat(&self) -> com::sys::HRESULT; } }
To define a COM implementation class:
com::class! { pub class BritishShortHairCat: IAnimal { num_owners: u32, } impl IAnimal for BritishShortHairCat { fn Eat(&self) -> com::sys::HRESULT { println!("Eating..."); com::sys::NOERROR } } }
See the examples directory in the repository for more examples.
Modules
interfaces | Common COM interfaces including IUknown and IClassFactory |
runtime | COM runtime facilities |
sys | Types for interacting with COM related system APIs |
Macros
interfaces | Declare COM interfaces |
Enums
Param | A COM method parameter used to accept either a reference or value. |
Traits
AbiTransferable | Types that are safe to transfer over a COM API boundary. |
Interface | A COM compliant interface pointer |
Type Definitions
CLSID | A class ID |
IID | An interface ID |