summaryrefslogtreecommitdiff
path: root/vendor/winapi/src/winrt/roapi.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/winapi/src/winrt/roapi.rs')
-rw-r--r--vendor/winapi/src/winrt/roapi.rs60
1 files changed, 60 insertions, 0 deletions
diff --git a/vendor/winapi/src/winrt/roapi.rs b/vendor/winapi/src/winrt/roapi.rs
new file mode 100644
index 0000000..47b9880
--- /dev/null
+++ b/vendor/winapi/src/winrt/roapi.rs
@@ -0,0 +1,60 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::basetsd::{UINT32, UINT64};
+use shared::guiddef::REFIID;
+use um::objidl::IApartmentShutdown;
+use um::winnt::{HRESULT, VOID};
+use winrt::activation::IActivationFactory;
+use winrt::hstring::HSTRING;
+use winrt::inspectable::IInspectable;
+ENUM!{enum RO_INIT_TYPE {
+ RO_INIT_SINGLETHREADED = 0,
+ RO_INIT_MULTITHREADED = 1,
+}}
+pub enum RO_REGISTRATION_COOKIE__ {}
+pub type RO_REGISTRATION_COOKIE = *mut RO_REGISTRATION_COOKIE__;
+FN!{stdcall PFNGETACTIVATIONFACTORY(
+ HSTRING,
+ *mut *mut IActivationFactory,
+) -> HRESULT}
+extern "system" {
+ pub fn RoInitialize(
+ initType: RO_INIT_TYPE,
+ ) -> HRESULT;
+ pub fn RoUninitialize();
+ pub fn RoActivateInstance(
+ activatableClassId: HSTRING,
+ instance: *mut *mut IInspectable,
+ ) -> HRESULT;
+ pub fn RoRegisterActivationFactories(
+ activatableClassIds: *const HSTRING,
+ activationFactoryCallbacks: *const PFNGETACTIVATIONFACTORY,
+ count: UINT32,
+ cookie: *mut RO_REGISTRATION_COOKIE,
+ ) -> HRESULT;
+ pub fn RoRevokeActivationFactories(
+ cookie: RO_REGISTRATION_COOKIE,
+ );
+ pub fn RoGetActivationFactory(
+ activatableClassId: HSTRING,
+ iid: REFIID,
+ factory: *mut *mut VOID,
+ ) -> HRESULT;
+}
+DECLARE_HANDLE!{APARTMENT_SHUTDOWN_REGISTRATION_COOKIE, APARTMENT_SHUTDOWN_REGISTRATION_COOKIE__}
+extern "system" {
+ pub fn RoRegisterForApartmentShutdown(
+ callbackObject: *const IApartmentShutdown,
+ apartmentIdentifier: *mut UINT64,
+ regCookie: *mut APARTMENT_SHUTDOWN_REGISTRATION_COOKIE,
+ ) -> HRESULT;
+ pub fn RoUnregisterForApartmentShutdown(
+ regCookie: APARTMENT_SHUTDOWN_REGISTRATION_COOKIE,
+ ) -> HRESULT;
+ pub fn RoGetApartmentIdentifier(
+ apartmentIdentifier: *mut UINT64,
+ ) -> HRESULT;
+}