summaryrefslogtreecommitdiff
path: root/vendor/windows-core/src/windows.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/windows-core/src/windows.rs')
-rw-r--r--vendor/windows-core/src/windows.rs73
1 files changed, 73 insertions, 0 deletions
diff --git a/vendor/windows-core/src/windows.rs b/vendor/windows-core/src/windows.rs
new file mode 100644
index 00000000..6f055bbc
--- /dev/null
+++ b/vendor/windows-core/src/windows.rs
@@ -0,0 +1,73 @@
+mod agile_reference;
+pub use agile_reference::*;
+
+mod array;
+pub use array::*;
+
+#[cfg(feature = "std")]
+mod event;
+#[cfg(feature = "std")]
+pub use event::*;
+
+mod handles;
+pub use handles::*;
+
+pub use windows_strings::*;
+
+/// Attempts to load the factory object for the given WinRT class.
+/// This can be used to access COM interfaces implemented on a Windows Runtime class factory.
+pub fn factory<C: RuntimeName, I: Interface>() -> Result<I> {
+ imp::load_factory::<C, I>()
+}
+
+impl Param<PCWSTR> for &BSTR {
+ unsafe fn param(self) -> ParamValue<PCWSTR> {
+ ParamValue::Owned(PCWSTR(self.as_ptr()))
+ }
+}
+
+impl Param<PCWSTR> for &HSTRING {
+ unsafe fn param(self) -> ParamValue<PCWSTR> {
+ ParamValue::Owned(PCWSTR(self.as_ptr()))
+ }
+}
+
+impl Param<PCWSTR> for PWSTR {
+ unsafe fn param(self) -> ParamValue<PCWSTR> {
+ ParamValue::Owned(PCWSTR(self.0))
+ }
+}
+
+impl Param<PCSTR> for PSTR {
+ unsafe fn param(self) -> ParamValue<PCSTR> {
+ ParamValue::Owned(PCSTR(self.0))
+ }
+}
+
+impl RuntimeType for HSTRING {
+ const SIGNATURE: imp::ConstBuffer = imp::ConstBuffer::from_slice(b"string");
+}
+
+impl TypeKind for PWSTR {
+ type TypeKind = CopyType;
+}
+
+impl TypeKind for PSTR {
+ type TypeKind = CopyType;
+}
+
+impl TypeKind for PCWSTR {
+ type TypeKind = CopyType;
+}
+
+impl TypeKind for PCSTR {
+ type TypeKind = CopyType;
+}
+
+impl TypeKind for HSTRING {
+ type TypeKind = CloneType;
+}
+
+impl TypeKind for BSTR {
+ type TypeKind = CloneType;
+}